【问题标题】:How to delete a jqgrid row without reloading the entire grid?如何在不重新加载整个网格的情况下删除 jqgrid 行?
【发布时间】:2011-12-09 13:47:46
【问题描述】:

我有一个包含多个 jqgrids 的网页,每个 jqgrids 都启用了内联编辑,启用了“操作”列(编辑图标)并禁用了寻呼机。我需要处理每一行的删除事件,以便我可以在不重新加载服务器端数据的情况下处理删除。我查看了jqGrid Delete a Row 中提到的方法,它非常有帮助,除了我有两个问题困扰着我 -

  1. delOptions.onClickSubmit 事件中的rp_ge 参数是否有更多详细信息? 我的专栏将 delOptions 设置为这样 -

delOptions: {onclickSubmit: function(rp_ge, rowid) {return onRowDelete(rp_ge,rowid);}},processing:true }},

有没有办法从该事件中获取网格 ID?我想要一个通用函数,可以用来处理页面上所有网格的删除事件。 rp_ge 参数有一个 gbox,它有时包含附加的网格 ID?但我不知道它是什么,因为我无法弄清楚它什么时候被填充,什么时候没有。

function onRowDelete(rp_ge, rowid) {
 //hardcoded grid id.. don't like it.
 var gridid = '#Grid_X';
 //what is this gbox?? can i get grid id predictable from it?
 //var gridid = rp_ge.gbox.replace("#gbox_", "");
 var grid = $('#Grid_X');
 rp_ge.processing = true;
 var result = grid.delRowData(rowid);
 if (result) {
    $("#delmod" + grid[0].id).hide();
 }
 return true;
}
  1. jqGrid Delete a Row 方法中,代码$("#delmod"+grid[0].id).hide(); 手动隐藏弹出删除确认对话框。我注意到,当对话框弹出时,jqgrid 不再强调背景页面(使其呈浅灰色)。但是在手动关闭弹出窗口后(实际上是隐藏的?),背景仍然不被强调。所以看起来页面没有焦点(甚至被禁用)。有什么办法可以解决这个问题?这也可以在Oleg 写的demo 上看到。

任何帮助将不胜感激。 (PS - 我会评论同一篇文章,但我还没有足够的分数来评论别人的答案。)

【问题讨论】:

    标签: asp.net-mvc jqgrid


    【解决方案1】:

    回答你的第二点。 Oleg 的几个例子如this 一个有如下修改。

     $("#delmod" + grid[0].id).hide();
    

    替换为

    $.jgrid.hideModal(
        "#delmod"+grid_id, 
        {gb:"#gbox_"+grid_id,jqm:rp_ge.jqModal,onClose:rp_ge.onClose}
    );
    

    这将在删除操作后返回焦点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-12
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 2016-09-04
      相关资源
      最近更新 更多