Ext에서 gridView 레코드 사용자 선택 항목

1822 단어 ext
최근에 Ext를 하다가 문제가 생겨서 여러분에게 보내주세요.
문제 설명:
sm가 있는gridView를 꺼내서 사용자가 선택하도록 하고, 사용자의 이전 선택 항목은 초기화되어야 합니다.
솔루션:
렌더링이 끝난 후store의 데이터를 훑어보고 sm의 selectRows 방법을 호출하여 선택하십시오
참고:
1. 렌더링 전에 호출할 수 없음을 주의하십시오.
2. selectRow 방법을 사용할 수 없습니다.
코드:
    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);

잘 못 썼는데 무슨 문제가 있으면 여러분의 비판과 시정을 환영합니다.

좋은 웹페이지 즐겨찾기