如何以编程方式选择ExtJS组件。

时间:2017-09-11 10:28:12

标签: javascript extjs

我在我的extJS网格中使用Checkbox选择模型

selModel: {
        selType: 'checkboxmodel',
    },

我希望我的网格可以取消选择。

用例: 假设我单击一个按钮,任何选定的单元格都可以取消选择。 (背后有一些逻辑。)

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果你想以编程方式取消选择,那么extJS中有一些名为deselect Check Doc Here的选项

您可以像这样编写代码。

var gridSelction = grid.getSelection();
    for(var i=0; i<gridSelction.length; i++){ // For MultiSelection
        if(Your logic){
            grid.selModel.deselect(gridSelction[i])
            break;
        }
    }

答案 1 :(得分:0)

您必须使用mode选择模型的checkboxmodel配置。这样,当您选择新内容时,先前的选择将被取消选中。 文档:http://docs.sencha.com/extjs/6.2.1/classic/Ext.selection.CheckboxModel.html#cfg-mode

var store = Ext.create('Ext.data.Store', {
      fields: ['name', 'email', 'phone'],
      data: [{
          name: 'Lisa',
          email: 'lisa@simpsons.com',
          phone: '555-111-1224'
      }, {
          name: 'Bart',
          email: 'bart@simpsons.com',
          phone: '555-222-1234'
      }, {
          name: 'Homer',
          email: 'homer@simpsons.com',
          phone: '555-222-1244'
      }, {
          name: 'Marge',
          email: 'marge@simpsons.com',
          phone: '555-222-1254'
      }]
  });

  Ext.create('Ext.grid.Panel', {
      title: 'Simpsons',
      store: store,
      columns: [{
          text: 'Name',
          dataIndex: 'name'
      }, {
          text: 'Email',
          dataIndex: 'email',
          flex: 1
      }, {
          text: 'Phone',
          dataIndex: 'phone'
      }],
      height: 200,
      width: 400,
      renderTo: Ext.getBody(),
      selModel: {
          selType: 'checkboxmodel',
          mode: 'SINGLE'

      }
  });