Ext GridPanel 拖放后加列插值解决方案总结
Ext 的grid拖拽,用起来很方便。最近需要实现的是拖拽后的gridPanel比前面的多两列。现在拖拽过去后,希望能够编辑,而且希望有默认值。
实现拖拽的方法和我前面发的实现拖拽排序都差不多。就是目标匹配问题。
但是要实现默认值,有点难道我了
在网上差了很多,都没有找到类是的。有人说修改ds,什么insert。感觉不对头,找了半天没有找到,算了还是自己静心下来想。
————————-
PS:我现在写的文章,除了会描述怎么做外,也会描述我是怎么思考的。这样即使有些不同,只要思路对了,也会有所启发。
———————
1,既然每拖一个过去,这边的就会减少,那边的就会增加。这就是在操作一条记录。这个记录我是可以获取的。
之前的拖拽排序给了我启发,之前是去到了这条记录后要对排序值进行修改然后再放下。
2,找到了拖拽处理时候的代码:
1: notifyDrop : function(ddSource, e, data){
2: var records = ddSource.dragData.selections;
3: Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
4: factorPanel.store.add(records);
5: return true
6: }
这个地方是用的Ext.each,中间的就是操作。然后考虑在这个地方多做点操作,除了做移除。
3,将代码修改如下面:
1: notifyDrop : function(ddSource, e, data){
2: var records = ddSource.dragData.selections;
3: Ext.each(records, function(rowData,index){
4: ddSource.grid.store.remove;
5: rowData.data.pageno=1;
6: rowData.data.sn=rowData.data.id;
7:
8: }, ddSource.grid.store);
9: subjectPanel.store.add(records);
10: return true
11: }
这里把中间的操作改成了一个function,默认会传两个参数,第一个是迭代出来的对象,就是一条具体的几率,第二个是当前迭代的序号相当于for循环是用的i变量。我这里就是除了把原数据移除外,还直接给一条几率多家了两个属性 pageno和sn,这就是javascript的灵活之处。
这样效果就出来了。写出来总结和回顾一下。希望对你也有用!
上一篇: Q+ 安装使用体验之旅
下一篇: 深入理解JavaScript的变量作用域

