【问题标题】:JqGrid updating grid on addJqG​​rid 在添加时更新网格
【发布时间】:2011-01-12 21:59:17
【问题描述】:

场景

我的网格中有三列,但只有一列是可编辑的,另外两列在服务器端填写。我正在使用 jqGrid 的内置添加功能,而不是在成功添加时刷新网格。我想将该行添加到网格中,就像它自动一样,但我想自己添加它,因为它只添加标记为“可编辑”的一列。我似乎找不到阻止该行自动添加到网格的方法,或者找不到覆盖网格中内置添加功能的方法。我的想法是自己添加该行,因为我会在提交时收到完整的数据行。

问题

  1. 当我不想刷新网格时,有没有办法阻止网格自动添加行,以便我可以手动添加行的所有数据?

  2. 是否可以使用内置的添加按钮并覆盖onClick,而无需挖掘并直接弄清楚jqGrid对按钮的调用是什么?

  3. 关于如何完成从服务器端将行添加到网格中的任何更好的想法,而无需手动完成所有操作......即。创建我自己的添加按钮,并弹出一个对话框并处理所有提交功能?

编辑

如果我可以阻止网格自动添加行会有什么帮助...我可以自己处理。

【问题讨论】:

    标签: jquery jquery-ui jquery-plugins jqgrid


    【解决方案1】:

    严格来说不是您想要的答案,但我选择简单地将 onClick 事件绑定到按钮并以这种方式添加行。

    var dummyRow;  // you can trick the addRowData method into simply adding a row without 
                   // index by passing an undefined value.
    
    jQuery('#addRow').click( function () {
        jQuery('#grid').jqGrid('addRowData', dummyRow, {"name":"New Name","val":"","other":"No"});
    });
    

    我很想看看其他人是否有其他选择,因为要求 Navigator 的 Add Row 方法专门用于 ajax 调用似乎很荒谬。

    【讨论】:

      【解决方案2】:

      这是一种解决方案。使用事件afterComplete描述here

      afterComplete : function (response, postdata, formid) {…}
      

      在这种情况下,您会从服务器获得响应数据。由于该行已经更新/插入,您可以使用 response 数据来更新其他行单元格。您可能可以从 postdata 获取行 ID,如果没有,请使用 afterSubmit 事件 - 它可以让您告诉 jqGrid 新行 ID 是什么(再次从服务器响应),因此您将知道其价值。

      【讨论】:

      • 没有办法让jqGrid自动添加行吗?我已经覆盖了 ajax 提交调用上的成功事件以取回数据,并且只想写一行以将该行附加到网格中......但是该行已经添加了。
      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 2018-03-26
      • 2013-10-15
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多