【问题标题】:SlickGrid onCellChange after edits shown in example 7编辑后的 ​​SlickGrid onCellChange 示例 7
【发布时间】:2011-02-21 20:58:49
【问题描述】:

如果我将以下代码添加到 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?

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

【问题讨论】:

  • 好吧,我想通了。谢谢锡的小费。如果您有同样的问题,只需在 onClick 订阅中复制您的保存代码,从 data[cell.row] 发送数据。
  • 操作员上面的评论没有回答原始问题 - 它可能解决了问题产生的原因 - 但不是问题。

标签: jquery slickgrid


【解决方案1】:

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

【讨论】:

  • 关于如何完成此任务的任何建议? grid.onClick.subscribe 来自示例,但他们没有跟进如何保存。我看到的所有内容都说要使用 onCellChange.subscribe 保存。
【解决方案2】:

只使用带有$(#priority).change 选择器的JQuery 怎么样?

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

$("#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 应该在每个页面上保持唯一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2011-03-13
    • 2011-05-25
    • 1970-01-01
    相关资源
    最近更新 更多