2015-04-22 66 views
0

我有slickgrid了以下问题:SlickGrid onSelectedRowsChanged不点火

  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 = ''; 
    }); 

请帮

+0

酷,你得到了什么到目前为止所选行的另一个highlightcolor(更像是黄的粉红色)?显示一些代码 – felipekm

+0

的例子?如果您希望我们调试您的代码,请使用JSFIDDLE。 – Fallenreaper

+0

http://casivaagustin.com.ar/wp-content/uploads/2015/04/show-me-the-source-yoda.jpg – Fallenreaper

回答

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(在我的应用程序蓝色)

+1

向它添加一些更多的细节。 – Billa