1

如果我将以下代码添加到 SlickGrid 示例 7:

grid.onCellChange.subscribe(function(e,args) 
{
  alert("here");
});

如果我更新文本字段“标题”,则会出现警报。当我更新用于演示单击以切换值的“优先级”字段时,它不会。使用此代码捕获点击。

    grid.onClick.subscribe(function(e) {
       var cell = grid.getCellFromEvent(e);
       if (columns[cell.cell].id == "priority") {
          var states = { "Low": "Medium", "Medium": "High", "High": "Low" };
          data[cell.row].priority = states[data[cell.row].priority];
          grid.updateRow(cell.row);
          e.stopPropagation();
       }
    });

问题:当“Priority”值发生变化时,如何触发 onCellChange?

感谢任何可以提供帮助的人。约翰。

4

2 回答 2

1

对我来说很有意义。仅当在网格内启动操作时,网格才会引发事件。在您的第二个示例中,您通过拦截特定的点击事件直接对数据源进行更改。

于 2011-02-21T23:36:44.220 回答
1

将 JQuery 与$(#priority).change选择器一起使用怎么样?

所以这是它的外观(或类似的东西):

$("#priority").change(function(e) {
    var cell = grid.getCellFromEvent(e);
    var states = { "Low": "Medium", "Medium": "High", "High": "Low" };
    data[cell.row].priority = states[data[cell.row].priority];
    grid.updateRow(cell.row);
    e.stopPropagation();
    });

不过,您可能希望将其更改为使用类而不是 id,因为每个 DOM id 应该在每个页面上保持唯一。

于 2012-04-04T13:11:35.490 回答