【问题标题】:How to provide immediate feedback if save action button is clicked in jqgrid如果在 jqgrid 中单击保存操作按钮,如何提供即时反馈
【发布时间】:2011-09-07 06:49:24
【问题描述】:

使用下面的代码将编辑操作按钮添加到 jqGrid 行。 编辑后,如果单击保存操作按钮,则没有任何反应,保存按钮保持活动状态。 保存需要一些时间,看起来点击被忽略了。用户一次又一次地点击保存按钮。

如何在单击保存按钮后和保存完成之前提供即时反馈:将保存按钮图标更改为保存动画,消除再次单击它的可能性,显示保存消息? 使用 jqueryUI。

colModel: [{"fixed":true,"label":" change ","name":"_actions","width":($.browser.webkit == true? 37+15: 32+15)
    ,"align":"center","sortable":false,"formatter":"actions",
"formatoptions":{"keys":true,"delbutton":false,"onSuccess":function (jqXHR) {actionresponse = jqXHR;return true;}
    ,"afterSave":function (rowID) {
    cancelEditing($('#grid'));afterRowSave(rowID,actionresponse);actionresponse=null; }
    ,"onEdit":function (rowID) {
      if (typeof (lastSelectedRow) !== 'undefined' && rowID !== lastSelectedRow)
        cancelEditing($('#grid'));
        lastSelectedRow = rowID;
        }
    }}

更新

如果在没有任何代码的情况下以两种方式保存在内联编辑中,FireFox 会正确地使网格处于非活动状态(变灰)。所以这似乎是 IE 问题。

如何在 IE 9 中也使 jqGrid 变灰?

【问题讨论】:

    标签: jquery-ui jqgrid


    【解决方案1】:

    如果我理解您更正了您的问题,则不是“操作”格式化程序的问题。如果用户只是按“Enter”并且该行应该保存在服务器上,那么您在内联编辑中也会遇到同样的问题。在向服务器发出ajax 请求之前,没有直接事件会被触发。

    尽管如此,有不同的间接可能性来接收控制并为用户显示“正在保存...”消息。最简单的方法是使用serializeRowData 来显示消息。您不应忘记在 errorfuncsuccessfunc 方法中关闭“正在保存...” div。

    【讨论】:

    • 谢谢。我更新了关于在 IE 中实现 FF 行为的问题。也许可以使用它。我还尝试使用标准 jqUery ajax 显示/隐藏事件的方法来使用 ajaxOptions 到 jQuery.extend(jQuery.jgrid.defaults 的那些属性,但这些事件不会被触发。
    • @Andrus:您在问题中要求为某种“保存动画”提供“即时反馈”。它与loadui: "block" 不同。您应该检查您的代码是否可以使用 "#lui_"+$t.p.id div 进行一些操作。
    • 对于不清楚的问题,我深表歉意。我向stackoverflow.com/questions/7333943/… 添加了更好的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多