Сетка EXtJS CheckColumn, Как выполнить функцию, после нажатия на столбец / проверки его состояния? - PullRequest
0 голосов
/ 16 октября 2011

У меня есть ExtJS GRID с контрольной колонкой, которая объявлена ​​так:

// the check column is created using a custom plugin
sel_column = new Ext.grid.CheckColumn({
   sortable: false,
   header: 'STE<br />SEL',
   dataIndex: 'sel',
   width: field_w,

    listeners:
    {

      "mousedown":
      {
        fn : function(e)
        {    
            $.log( "Sel cellclick" , e );
        }
      }    

    }


});

Я хочу добавить слушателя при изменении его состояния или при щелчке мышью.В конце - хочу, чтобы идентификаторы строк, где я щелкаю этот столбец, сохранялись в текстовом поле

. Теперь я могу понять, как отлавливать событие клика, я использую onMouseDown следующим образом:

// the check column is created using a custom plugin
sel_column = new Ext.grid.CheckColumn({
   sortable: false,
   header: 'STE<br />SEL',
   dataIndex: 'sel',
   width: field_w,

   onMouseDown: function( e )
   {
     $.log( e,"MouseDown" );
   }


});

Но срабатывает, когда я щелкаю ЛЮБУЮ ячейку, не только отмеченную галочкой ...

Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 18 мая 2013
/*
**************************************************************
Sample to add event 'checkchange' in checkbox on checkcolumn,
works with ExtJS 4 or above
*/
//Add you checkcolumn   id:'op_check'. No need separate plugin.
//Put this code in You Grid

listeners:{
    afterrender:function(){
        g = this;   //This grid
        Ext.getCmp('op_check').on('checkchange', function(c, i){
            //Get id from row/record (if in store exist field 'id')
            //"i" - in this function is index row, where clicked checkbox
            rec = g.store.getAt(i);
            id = rec.get('id');
            console.log(id); //:)
        });
    }
}
0 голосов
/ 17 октября 2011

Плагин checkbox нуждается в модификации, после чего он может запускать событие клика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...