SlickGrid onSelectedRowsChanged没有开火

问题描述 投票:0回答:3

我对slickgrid有以下问题:

  1. 左键单击第1行(onSelectedRowsChanged按预期触发)
  2. 按住控制按钮
  3. 左键单击第2行(onSelectedRowsChanged按预期触发)
  4. 左键单击第1行(onSelectedRowsChanged按预期触发)
  5. 放开控制按钮
  6. 单击第1行(onSelectedRowsChanged不会触发!如果单击与之前相同的第1行单元格)

上述步骤6中描述的问题。这是一个显示问题的jsfiddler的链接:http://jsfiddle.net/fortesl/oLj8otsj/1/

代码也附:

         var grid;
     var data = [];
     var columns = [{
         id: "title",
         name: "Title",
         field: "title",
         width: 300,
         selectable: false,
         resizable: false
     }, {
         id: "priority",
         name: "Priority",
         field: "priority",
         width: 200,
         selectable: false,
         resizable: false
     }];

     var options = {
         editable: true,
         enableAddRow: true,
         enableCellNavigation: true,
         forceFitColumns: true,
         autoEdit: false
     };

     for (var i = 0; i < 100; i++) {
         var d = (data[i] = {});
         d["title"] = "Task " + (i + 1);
         d["priority"] = "Medium";
     }

     grid = new Slick.Grid("#myGrid", data, columns, options);

     grid.setSelectionModel(new Slick.RowSelectionModel());

     grid.onSelectedRowsChanged.subscribe(function () {
         var selectedRows = grid.getSelectedRows();
         for (var i = 0; i < selectedRows.length; i++) {
             selectedRows[i] = selectedRows[i] + 1;
         }
         $('.selected-rows')[0].innerHTML = selectedRows;
     });
     grid.onClick.subscribe(function () {
         $('.selected-rows')[0].innerHTML = '';
     });

请帮忙

javascript jquery angularjs slickgrid
3个回答
0
投票

我通过处理OnClick事件并从处理程序调用setSelectedRows解决了我的问题。如下所示:

                grid.onClick.subscribe(function(e) {
                var cell = $scope.grid.getCellFromEvent(e);
                var row = (cell) ? cell.row : 0;
                var rows = [row];
                grid.setSelectedRows(rows);
            });

0
投票

这是因为单元格(不是行)处于活动状态,并且在slick.grid.js中进行检查,确保在单击已激活的单元格时未激活触发器。

看看吧

 function handleClick(e)...

在源代码文件中,您将看到有问题的检查。


0
投票

OnClick事件和调用setSelectedRows给出了所选行的另一个高亮颜色(更像黄色 - 粉红色)而不是onSelectedRowsChanged(我的应用程序中为蓝色)

© www.soinside.com 2019 - 2024. All rights reserved.