【问题标题】:SlickGrid onSelectedRowsChanged still be fired when cell changed in the Same Row当同一行中的单元格更改时,仍会触发 SlickGrid onSelectedRowsChanged
【发布时间】:2013-04-10 04:22:29
【问题描述】:

在我的项目中,onSelectedRowsChanged 事件可以在行更改时触发,但也可以在同一行中的活动单元格更改时触发,实际上我们不希望它发生。在 slickgrid exaple4-model.html 页面中进行了测试,代码在这里:

  grid.onSelectedRowsChanged.subscribe(function (e, args) {
      window.console.log("fire selected events...");
  });

谁能找到一个很好的解决方案来避免这种情况?感谢您的回复或建议。

【问题讨论】:

    标签: slickgrid


    【解决方案1】:
    //This works for me:
    
    grid.setSelectionModel(new Slick.RowSelectionModel());
    
    //onCellChange event, track current row.
    
    var rowIndex;
    
    grid.onCellChange.subscribe(function (e, args) {
        rowIndex = args.row;
    });
    
    //onSelectedRowsChanged event, if row number was changed call some function.
    
    grid.onSelectedRowsChanged.subscribe(function (e, args) {
        if (grid.getSelectedRows([0])[0] !== rowIndex) {
            call function;
        }
    });
    

    【讨论】:

      【解决方案2】:

      这对我有用

      //Declare Global Variable
      var lastSelectedId;
      
      grid.onCellChange.subscribe(function (e, args) {
          var selectedItem = grid.getDataItem(grid.getSelectedRows(0[0]);
          if (selectedItem.id != lastSelectedId){ 
              //Actions go here!
          }
          lastSelectedId = selectedItem.id
      });
      

      【讨论】:

        猜你喜欢
        • 2015-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-21
        • 1970-01-01
        • 1970-01-01
        • 2020-02-20
        相关资源
        最近更新 更多