ExtJS使用CheckboxSelectionModel选择多行

时间:2015-02-26 22:13:31

标签: javascript extjs

我是ExtJS的新手,版本是3.4.0。 现在我要做的是当我选择一行时,所有其他具有相同''actionId''的行也将被选中。有任何想法吗? 这是我的代码的一部分

var xg = Ext.grid;
var checkboxSelector = new xg.CheckboxSelectionModel({
  header: '',
  handleMouseDown: Ext.emptyFn,
  listeners: {
    'rowselect': function(selectionModel, rowIndex, record) {
      var valueSelected = record.get('actionId');
    }
  }
});
var erroneousActionsGrid = new xg.GridPanel({
      id: 'erroneousActionsPanel',
      layout: 'fit',
      store: store,
      cm: new xg.ColumnModel([
        checkboxSelector, {
          header: "Action Name",
          width: 80,
          sortable: true,
          dataIndex: 'actionName'
        }, {
          header: "Action Id",
          width: 30,
          sortable: true,
          dataIndex: 'actionId'
        }, {
          id: 'files',
          header: "File Id",
          width: 30,
          sortable: true,
          dataIndex: 'fileId',
          renderer: function(value, metaData, record, rowIndex, colIndex, store) {
            return '<a href=file/lifeCycleFile/' + value + '>' + value + '</a>';
          }
        }, {
          header: "Task Id",
          width: 30,
          sortable: true,
          dataIndex: 'taskId'
        }, {
          header: "User Name",
          width: 50,
          sortable: true,
          dataIndex: 'userName'
        }, {
          header: "Execute Date",
          width: 30,
          sortable: true,
          dataIndex: 'executeDate',
          renderer: Ext.util.Format.dateRenderer('Y/m/d H:i:s')
        }
      ]),
      bbar: actionListPagingBar,
      plugins: [{
        ptype: 'perpagefield',
        beforeText: ''
      }],
      sm: checkboxSelector,

提前感谢!

1 个答案:

答案 0 :(得分:0)

所以在你的rowselect处理程序中,你现在拥有了你需要的值。从这里您需要在商店中搜索具有匹配字段值的记录,商店中有一些方法可以让您执行此操作并返回匹配记录数组。

然后,您可以在选择模型对象上设置选择。同样,还有一个函数可以执行此操作,该函数将获取您将从商店搜索中检索到的记录数组,如上所述。您可能还需要将multiSelect:true添加到选择模型配置中。