课程表

Ext.js课程

工具箱
速查手册

Ext.js 网格到网格拖放

当前位置:免费教程 » JS/JS库/框架 » Ext.js

描述

在拖放插件的帮助下,我们可以从一个网格拖动数据,并可以将其拖放到另一个网格,反之亦然。
下面提到的示例显示了如何从一个网格拖动数据到另一个网格,在这里我们有复位按钮来重置两个网格中的数据。

下面是一个简单的示例,显示了栅格之间的拖放。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link href="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/classic/theme-classic/resources/theme-classic-all.css" rel="stylesheet" />
  5. <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/ext-all.js"></script>
  6. <script type="text/javascript">
  7. Ext.require([
  8. 'Ext.grid.*',
  9. 'Ext.data.*',
  10. 'Ext.dd.*'
  11. ]);
  12. // Creation of data model
  13. Ext.define('StudentDataModel', {
  14. extend: 'Ext.data.Model',
  15. fields: [
  16. {name: 'name', mapping : 'name'},
  17. {name: 'age', mapping : 'age'},
  18. {name: 'marks', mapping : 'marks'}
  19. ]
  20. });
  21. Ext.onReady(function(){
  22. // Store data
  23. var myData = [
  24. { name : "Asha", age : "16", marks : "90" },
  25. { name : "Vinit", age : "18", marks : "95" },
  26. { name : "Anand", age : "20", marks : "68" },
  27. { name : "Niharika", age : "21", marks : "86" },
  28. { name : "Manali", age : "22", marks : "57" }
  29. ];
  30. // Creation of first grid store
  31. var firstGridStore = Ext.create('Ext.data.Store', {
  32. model: 'StudentDataModel',
  33. data: myData
  34. });
  35. // Creation of first grid
  36. var firstGrid = Ext.create('Ext.grid.Panel', {
  37. multiSelect: true,
  38. viewConfig: {
  39. plugins: {
  40. ptype: 'gridviewdragdrop',
  41. dragGroup: 'firstGridDDGroup',
  42. dropGroup: 'secondGridDDGroup'
  43. },
  44. listeners: {
  45. drop: function(node, data, dropRec, dropPosition) {
  46. var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';
  47. }
  48. }
  49. },
  50. store : firstGridStore,
  51. columns :
  52. [{
  53. header: "Student Name",
  54. dataIndex: 'name',
  55. id : 'name',
  56. flex: 1,
  57. sortable: true
  58. },{
  59. header: "Age",
  60. dataIndex: 'age',
  61. flex: .5,
  62. sortable: true
  63. },{
  64. header: "Marks",
  65. dataIndex: 'marks',
  66. flex: .5,
  67. sortable: true
  68. }],
  69. stripeRows : true,
  70. title : 'First Grid',
  71. margins : '0 2 0 0'
  72. });
  73. // Creation of second grid store
  74. var secondGridStore = Ext.create('Ext.data.Store', {
  75. model: 'StudentDataModel'
  76. });
  77. // Creation of second grid
  78. var secondGrid = Ext.create('Ext.grid.Panel', {
  79. viewConfig: {
  80. plugins: {
  81. ptype: 'gridviewdragdrop',
  82. dragGroup: 'secondGridDDGroup',
  83. dropGroup: 'firstGridDDGroup'
  84. },
  85. listeners: {
  86. drop: function(node, data, dropRec, dropPosition) {
  87. var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';
  88. }
  89. }
  90. },
  91. store : secondGridStore,
  92. columns :
  93. [{
  94. header: "Student Name",
  95. dataIndex: 'name',
  96. id : 'name',
  97. flex: 1,
  98. sortable: true
  99. },{
  100. header: "Age",
  101. dataIndex: 'age',
  102. flex: .5,
  103. sortable: true
  104. },{
  105. header: "Marks",
  106. dataIndex: 'marks',
  107. flex: .5,
  108. sortable: true
  109. }],
  110. stripeRows : true,
  111. title : 'Second Grid',
  112. margins : '0 0 0 3'
  113. });
  114. // Creation of a panel to show both the grids.
  115. var displayPanel = Ext.create('Ext.Panel', {
  116. width : 600,
  117. height : 200,
  118. layout : {
  119. type: 'hbox',
  120. align: 'stretch',
  121. padding: 5
  122. },
  123. renderTo : 'panel',
  124. defaults : { flex : 1 },
  125. items : [
  126. firstGrid,
  127. secondGrid
  128. ],
  129. dockedItems: {
  130. xtype: 'toolbar',
  131. dock: 'bottom',
  132. items: ['->',
  133. {
  134. text: 'Reset both grids',
  135. handler: function(){
  136. firstGridStore.loadData(myData);
  137. secondGridStore.removeAll();
  138. }
  139. }]
  140. }
  141. });
  142. });
  143. </script>
  144. </head>
  145. <body>
  146. <div id = "panel" > </div>
  147. </body>
  148. </html>

尝试一下

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号