如何从cellclick中获取网格widgetcolumn中的复选框?

时间:2016-05-17 11:46:19

标签: extjs

我的复选框栏:

{
   xtype: 'widgetcolumn',
   text: 'Selection',
   tdCls: 'actions',
   header: 'Selection',
   width: '5%',
   dataIndex: 'selection',
   widget: {
      xtype: 'checkbox',
      defaultBindProperty: 'disabled',
      listeners: {
         afterrender: function (chb) {
            var rec = chb.getWidgetRecord();
            chb.setValue(rec.get('selection'));
            chb.on('change', this.checkHandler);
            chb.setDisabled(rec.get('selection_disabled'));
         },
         scope: this
      }
   }
}

如何通过逐步获取设置值的cellclick网格事件中的复选框?在单击单击我需要更改复选框的值(cbox.setValue(!cbox.getValue());或相同)。

1 个答案:

答案 0 :(得分:1)

不确定它是否是最佳解决方案,但您可以执行以下操作:

{
    xtype: 'widgetcolumn',
    dataIndex: 'checked',
    flex: 1,
    text: 'Checked',

    widget: {
        xtype: 'checkbox'
    },
    onWidgetAttach: function(column, widget, record) {
        // Make sure your property / id pair is unique
        // You can use Ext.id() to generate id for your record and widget
        widget.widgetId = record.get('id');
    }
}

grid.on('cellclick', function(view, td, cellIndex, record) {
    var rowWidget = Ext.ComponentQuery.query('checkbox[widgetId=' + record.get('id') + ']')[0];
    if(rowWidget) {
        rowWidget.setValue(!rowWidget.getValue());
    }
});

Working fiddle