2012-02-13 12 views
0

にはSelectionModelのすべてのチェックボックスをオンにしてください。Ext.grid.CheckboxSelectionModelは、ロード時にすべての行をチェックしました

私はこの方法で書く:

function SelectAllRows() 
{  
    var sModel = reportsGrid.getSelectionModel(); 
    sModel.selectAll(true);  
} 

そして、多くの場所からそれを呼び出すようにしてみてください。

var xmlStore = new Ext.data.Store({ 
    url: "...", 
    reader: new Ext.data.XmlReader({ 
     record: '...', 
     totalRecords: "results" 
    }, 
    record 
) 
}); 

xmlStore.on('load', CheckResults); 
xmlStore.on('load', SelectAllRows); 
xmlStore.load(); 

をしかし、私は後ろから来たときにのみページへの最初の入り口の上に、それは、うまくいきます次のページは動作しません。

ボトムバーに、チェックされた行のデータの合計を含むラベルを追加すると、ラベルにすべての行の合計が表示されるのは奇妙です! したがって、メソッドは正常に呼び出されましたが、チェックボックスはチェックされていません。

この問題が発生しましたか?

+0

すべてのデータを保持しているため、ページングがローカルで行われている可能性があります。そのため、その負荷は一度だけ呼び出されます。 Ext.PagingToolbarを使用してページを切り替えると仮定していますか?ページングツールバーの 'change'イベントで' SelectAllRows'をフックしたいのでしょうか? – CincauHangus

+0

私はこのグリッドでExt.PagingToolbarを使用しませんでした BottomToolBarにはすべての行の数がチェックされているので、SelectAllRowsメソッドがうまく呼び出されたようです しかし、チェックされているだけでは表示されません視覚的問題)。 –

答えて

4

私はそれが、理由レンダリング二回アクティブ化の を追加しました。この値-'deferRowRenderが起こった見た:Ext.grid.GridPanelプロパティにfalse'-、 は、チェックボックスがページ目のすべての入り口/負荷にマークされます。

var reportsGrid = new Ext.grid.GridPanel({ 
    cm: new Ext.grid.ColumnModel([ 
     sm, 
     { id: '...', dataIndex: '...', hidden: true }, 
     { header: '...', width: 200, sortable: true, dataIndex: '...' } 
    ]), 
    sm: sm,     
    deferRowRender: false 
}); 
関連する問題