Extjs 让grid的CheckboxSelectionModel 监听
时间: 2023-12-18 14:04:47 浏览: 34
可以使用CheckboxSelectionModel的listeners属性来监听选择事件。示例代码如下:
```javascript
var grid = Ext.create('Ext.grid.Panel', {
// ...
selModel: {
selType: 'checkboxmodel',
listeners: {
selectionchange: function(model, selected, eOpts) {
// 处理选择事件
}
}
},
// ...
});
```
在listeners属性中,可以监听CheckboxSelectionModel的selectionchange事件,当用户选择或取消选择行时,该事件会被触发。在事件处理函数中,可以通过参数获取选择的行记录,进而进行相应的处理。
相关问题
EXTjs如何让grid的 的CheckboxSelectionModel全部选中
可以使用CheckboxModel的selectAll方法来实现Grid的CheckboxSelectionModel全部选中的功能。示例代码如下:
```javascript
var grid = Ext.create('Ext.grid.Panel', {
// ...
selModel: {
selType: 'checkboxmodel'
},
// ...
});
// 全部选中
grid.getSelectionModel().selectAll();
```
在代码中,我们首先创建了一个Grid,并使用CheckboxModel作为其选择模型。然后,我们通过getSelectionModel方法获取到CheckboxModel实例,并调用其selectAll方法,实现Grid的CheckboxSelectionModel全部选中的功能。
需要注意的是,在调用selectAll方法之前,我们必须保证Grid中至少有一行数据,否则selectAll方法将不会产生任何效果。
Extjs4 grid按字段排序
要在 ExtJS 4 的 Grid 组件中按字段排序,你可以使用 `sorters` 配置项。该配置项是一个数组,每个元素表示一个排序规则。下面是一个示例代码:
```javascript
Ext.create('Ext.grid.Panel', {
store: Ext.create('Ext.data.Store', {
fields: ['name', 'age'],
data: [
{name: 'Alice', age: 25},
{name: 'Bob', age: 20},
{name: 'Charlie', age: 30}
]
}),
columns: [
{header: 'Name', dataIndex: 'name'},
{header: 'Age', dataIndex: 'age'}
],
sorters: [{
property: 'age', // 按 age 字段排序
direction: 'ASC' // 升序排列
}]
});
```
在上面的示例中,我们创建了一个 Grid 组件,其中包含两列:Name 和 Age。我们还创建了一个 Store,其中包含三个对象,每个对象包含一个名字和一个年龄。我们使用 `sorters` 配置项指定按 age 字段升序排列。
你还可以使用 `multiSort` 配置项来启用多列排序。将其设置为 true,然后在 `sorters` 数组中添加多个元素即可。例如:
```javascript
sorters: [{
property: 'age',
direction: 'ASC'
}, {
property: 'name',
direction: 'DESC'
}],
multiSort: true
```
这会首先按 age 字段升序排列,如果两个对象的 age 值相等,则按 name 字段降序排列。