重新排序网格Ext JS 4中的行

时间:2012-03-16 20:06:17

标签: javascript extjs datagrid drag-and-drop

我希望能够在单个网格中重新排序行。我相对较新的extjs并尝试搜索这个,但我找到的所有资源都是旧的ext js版本,其中定义的一些属性不再有效。 eg- http://www.vinylfox.com/getting-started-with-grid-drag-drop/

    xtype: 'grid',
    id: 'row-grid',
    hideHeaders: true,
    store: 'SelectedRowStore',
    //enableDragDrop: true,
    //ddGroup: 'rowgrid-dd',
    columns: [
        {
            header: 'Rows',
            flex: 1,
            sortable: false,
            dataIndex: 'DisplayName'
        }, 
        {
            id: 'button-column',
            dataIndex: 'ID',
            sortable: true,
            hideable: false,
            width: 35,
            renderer: PA.common.RendererHelper.renderButtonForAddRowMainGrid
        }
    ] 

我非常感谢有关此问题的任何帮助/建议。

2 个答案:

答案 0 :(得分:2)

看看grid to grid drag-n-drop example。它适用于两个网格,但我确信它可以很容易地修改,以允许在一个网格内重新排列行。

答案 1 :(得分:0)

您可以按照Rene所说的那样跟随sencha样本:

将此添加到您的网格中:

       viewConfig: {
            plugins: {
                ptype: 'gridviewdragdrop',
                containerScroll: true,
                dragGroup: 'someuniquenameforyourgrid',
                dropGroup: 'someuniquenameforyourgrid'
            },
        },

而且,只有当你需要一些监听器来做一些动作时,才能添加(在viewConfig中):

       listeners: {
            drop: 'onDropGrid'
        }

和控制器中的事件处理程序代码:

   onDropGrid: function (node, data, dropRec, dropPosition) {
       ...
   }