我对EXTJS很新,所以我还没有完全理解它是如何工作的,但是我设法构建一个由select选择的网格(因此它不直接映射到表)。该网格的一列是ID。我还在网格中添加了一个复选框
this.columns =
[
{
header: 'Selected',
dataIndex: 'Selected',
xtype: 'checkcolumn'
},
....rest of the columns
在我的模特上我有:
fields:
[
{ name: 'Selected', type: 'bool' },
{ name: 'ID', type: 'int' },
...rest of the fields
我需要的是,点击一个按钮(已经添加),获取Selected属性设置为true的ID列表。
任何想法我怎么能这样做?
答案 0 :(得分:3)
这很简单(如果我理解你的话),网格有selection model来处理这些选择。您只需获取选择模型并获取所有selected条记录。
每个选项都会触发itemclick,selectionchange个事件。第二个给出了一系列选定的记录。
我想Ext.selection.CheckboxModel也可能对你感兴趣。
修改强>
好吧我猜以上都不是你想要的,但可能很有趣。您需要的是迭代商店的所有记录,可以使用store.each()完成。在您的按钮范围内执行此操作并将数组。实施例
var myGrid = Ext.getCmp('MyGrid');
var list = [];
myGrid.store.each(function(rec) {
if(rec.data.Selected)
list.push(rec);
return true;
});
要获取当前选定的记录(模型),请执行以下操作:
var myGrid = Ext.getCmp('MyGrid'),
sm = myGrid.getSelectionModel(),
selection = sm.getSelection(), // gives you a array of records(models)
len = selection.length,
i = 0,
idList = [];
for (; i<len; i++) {
idList.push(selection[i].data.ID);
}