Ext中gridView记录用户选择项

        最近作Ext的时候遇到一个问题,发上来你们分享。数组

问题描述:code

        我要弹出一个带sm的gridView让用户选择,而用户以前的选择项要在初始化是保持选中状态。get

解决方案:it

        在渲染结束后遍历store中的数据,而且调用sm的selectRows方法进行选中io

注意:function

        一、注意不能在渲染以前调用;class

        二、不能调用selectRow方法。渲染

代码:List

var store = new Ext.data.Store({
        proxy: new Ext.data.MemoryProxy(data),  //data为数据源
        reader: new Ext.data.ArrayReader({}, [
            {name: 'value'},
            {name: 'name'}
        ])
    });
    store.load();

    var grid = new Ext.grid.GridPanel({
        id: 'grid',
        viewConfig: {forceFit: true},
        store: store,
        cm: cm,
        sm: sm,
        tbar: [
            {
                xtype: 'button',
                id: 'btnOK',
                text: '肯定',
                handler: function() {
                    var selections = sm.getSelections();
                        win.copyToList(selections, selectID); //记录用户的选择,请根据本身的状况自行完善。
                    window.close();
                }
            },
            {
                xtype: 'button',
                id: 'btnCancel',
                text: '取消',
                handler: function() {
                    window.close();
                }
            }
        ]
    });

    var viewport = new Ext.Viewport({
        layout: 'fit',
        items: [grid]
    });  
 
    //选中用户已选中的项
    var indexs = [];
    var index = 0;
    for(var i = 0; i < data.length; i++) { //items为记录用户选择项的数组
        var record  = data[i];
        for(var j = 0; j < items.length; j++) {
            if(record[0] == items[j].value) {
                indexs[index] = i;
                index++;
            }
        }
    }
    sm.selectRows(indexs);

写得很差,有什么问题,欢迎你们批评指正。select

相关文章
相关标签/搜索