SlickGrid取消选中Row CheckBox事件

时间:2012-07-01 05:47:23

标签: javascript jquery html5 slickgrid

我是jQuery的新手,我需要在项目中使用网格。我选择了SlickGrid(非常光滑)。我需要在取消选择行时禁用某些按钮。

我正在使用以下回调:

grid.onSelectedRowsChanged.subscribe(function(){});

问题是回调仅在选择时执行 - 而不是在取消选择行时执行。

2 个答案:

答案 0 :(得分:0)

grid.onSelectedRowsChanged.subscribe(function(){
     var selectedRows = grid.getSelectedRows();
     if (selectedRows.length === 0) {
          // (when all rows are deselected)
          // your logic goes here...
     }
});

如果要在任何行上执行逻辑,请取消选择我建议将selectedRows存储在全局变量中,该变量将在SelectedRowsChanged事件上更新。同样在onSelectedRowsChanged中,您可以比较全局selectedRows变量和grid.getSelectedRows()长度以查看是否发生了任何更改。

var lastSelectedRows = [];    
grid.onSelectedRowsChanged.subscribe(function(){
     var selectedRows = grid.getSelectedRows();
     if (selectedRows.length < lastSelectedRows.length ) {
        // proceed in finding the actual row by comparing the two arrays
        // the rest of the logic goes here...
      }
      lastSelectedRows =  selectedRows;
 });

!请注意,我是Slickgrid世界的新手,这可能不是最好的解决方案。我认为值得一试

答案 1 :(得分:0)

var lastSelectedRow = null;

grid.onSelectedRowsChanged.subscribe(function () {
    if (lastSelectedRow && lastSelectedRow != grid.getSelectedRows()[0]) {        
        var item = dataView.getItem(lastSelectedRow);
        // Do something with item;
    }

    lastSelectedRow = grid.getSelectedRows()[0];

    // other logic may go here
});