Javascript Ext.grid.CheckboxSelectionModel已检查加载时的所有行
我希望加载我的Javascript Ext.grid.CheckboxSelectionModel已检查加载时的所有行,javascript,extjs,Javascript,Extjs,我希望加载我的Ext.grid.CheckboxSelectionModel,并选中SelectionModel中的所有复选框 我写这个方法: function SelectAllRows() { var sModel = reportsGrid.getSelectionModel(); sModel.selectAll(true); } 并尝试从多个地方调用它: var xmlStore = new Ext.data.Store({ url: "..
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();
但只有在第一次进入页面时,它才工作得很好,当我从下一页返回时,它就不工作了
奇怪的是,当我将一个标签添加到底部栏时,它包含选中行的数据总和,而标签显示所有行的总和!
因此,该方法调用良好,但复选框不显示为选中
你遇到过这个问题吗?我看到它是因为渲染激活了两次, 在Ext.grid.GridPanel属性中添加了此值--“deferRowRender: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
});
我看到这是因为渲染激活了两次, 在Ext.grid.GridPanel属性中添加了此值--“deferRowRender: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
});
这可能是因为您拥有所有数据,并且分页是在本地完成的。因为这个负载只被调用一次。我假设您正在使用Ext.PagingToolbar在页面之间切换?也许你想钩住分页工具栏的
change
事件上的SelectAllRows
?我没有在这个网格中使用Ext.PagingToolbar,似乎SelectAllRows方法调用得很好,因为底部工具栏包含所有行的数量(已选中),但它只是没有显示它们已选中(视觉问题)。这可能是因为您拥有所有数据,并且分页是在本地完成的。因为这个负载只被调用一次。我假设您正在使用Ext.PagingToolbar在页面之间切换?也许你想钩住分页工具栏的change
事件上的SelectAllRows
?我没有在这个网格中使用Ext.PagingToolbar,似乎SelectAllRows方法调用得很好,因为底部工具栏包含所有行的数量(已检查),但它只是没有显示它们已检查(视觉问题)。