Ext.grid.CheckboxSelectionModel检查了加载的所有行

时间:2012-02-13 07:15:52

标签: javascript extjs

我希望我的Ext.grid.CheckboxSelectionModel加载SelectionModel已选中的所有复选框。

我写这个方法:

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();

但是只有在页面的第一个入口才能正常工作,当我从下一页回来时它不起作用。

奇怪的是,当我向底栏添加一个标签,其中包含已检查行的数据总和,标签显示所有行的总和! 因此,该方法调用良好,但复选框不显示为已选中。

你遇到过这个问题吗?

1 个答案:

答案 0 :(得分:4)

我看到它发生了,因为渲染激活两次, 将此值-'deferRowRender:false'添加到Ext.grid.GridPanel属性中, 使复选框标记在页面的每个入口/负载上。

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
});