extjs 网格面板拖放功能

Posted

技术标签:

【中文标题】extjs 网格面板拖放功能【英文标题】:extjs gridpanel drag and drop feature 【发布时间】:2011-03-23 12:41:01 【问题描述】:
Ext.namespace('Moca');
.....

Moca.LaGrid = new Ext.grid.GridPanel(
store : Moca.Stores.LaStore,
ddGroup: 'GridDD',
enableDragDrop: true,
.....


  var ddrow = new Ext.dd.DropTarget(Moca.LaGrid.getView().mainBody, 
            ddGroup : 'GridDD',
            copy:false,
            notifyDrop : function(dd, e, data)
                var sm=Moca.LaGrid.getSelectionModel();
                var rows=sm.getSelections();
                var ds = Moca.LaGrid.store;
                var cindex=dd.getDragData(e).rowIndex;
                for (i = 0; i < rows.length; i++) 
                    rowData=c.getById(rows[i].id);
                    if(!this.copy) 
                        ds.remove(ds.getById(rows[i].id));
                        ds.insert(cindex,rowData);
                    
                ;
            
        );  

this.el is null ext-all.js (line7)

请帮忙?

【问题讨论】:

什么时候抛出错误? 【参考方案1】:

首先猜测是 Moca.LaGrid 在创建 ddrow 时尚未渲染到其容器,因此 Moca.LaGrid.getView().mainBody 将为 null。在将 GridPanel 附加到其容器后尝试创建 ddrow。

【讨论】:

以上是关于extjs 网格面板拖放功能的主要内容,如果未能解决你的问题,请参考以下文章

Extjs4 树面板从网格面板借用

ExtJS 网格面板 - 每行多个“行”?

ExtJS 4 网格面板 - 空格键行切换

如何在 ExtJS 4 网格面板中保留垂直滚动条?

使用 preloadChildren false 在 ExtJS 树面板之间拖放

JavaScript Extjs面板拖放