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

相關文章
相關標籤/搜索