javascript - jqGrid 使用 celledit 显示自己的错误对话框

标签 javascript jquery jquery-ui jqgrid dialog

我正在使用 jqGrid 在我的 PHP 应用程序中显示表格。这一切都很好,但对于一个网格,我想使一个特定的列(称为“价格”)内联可编辑。

我想要的是,当出现问题时,我想发布我自己的 Jquery-UI 对话框屏幕。我认为最好是在 afterSubmitCell 事件中执行此操作,但问题是我无法阻止 jqGrid 显示带有服务器响应消息的默认对话框。

我有这样的事情:

        $('#productslist').jqGrid('setGridParam', {
        afterSubmitCell : function(serverresponse, rowid, cellname, value, iRow, iCol){
            $('<div></div>').html('My own error message').dialog({ 
                'title' : 'Some title',
                'modal' : true,
                'show' : 'blind',
                'hide' : 'blind'
            });

            return [false, ''];
        }
    }).trigger('reloadGrid');

根据文档: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing

此事件必须返回一个带有 bool 值的数组,指示它是否成功,第二个是消息。此消息将显示在由 jqGrid 本身触发的 jquery-ui 对话框中。

问题是我想在发生错误时自定义对话框。但似乎没有太多可能性,或者我找不到它们。

我也尝试了事件 errorCell,但是只有当服务器没有给出 200 响应时才会触发该事件。或者当发生错误时我应该发送另一个响应代码 200 吗?对我来说似乎有点脏..

希望有人能帮助我!提前致谢。

最佳答案

我找到了一种无需修改源代码即可抑制内置对话框的方法,这显然是出于维护原因的最后手段。当内置对话框弹出时,它获得焦点,允许我们使用此事件再次关闭它

//Supresss jqGrid error dialog, called #info_dialog
$(document).on("focus", "#info_dialog", function () {

    $("#info_dialog").hide();

});

或者,如果像我一样,唯一的问题是样式,并且您很乐意将 jqGrid 消息直接传递到您的对话框,您可以执行以下操作而不在其中添加任何内容:

//Supresss jqGrid error dialog, called #info_dialog
$(document).on("focus", "#info_dialog", function () {

    var errorMessage = $("#infocnt").text();
    $("#info_dialog").hide();
    var $dialog = $('<div></div>')
        .html(errorMessage)
        .dialog({
            autoOpen: true,
            resizable: false,
            buttons: { "Done": function () { $(this).dialog("close"); } },
            title: 'Error'
        });

    $dialog.dialog('open');

});

关于javascript - jqGrid 使用 celledit 显示自己的错误对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7236419/

相关文章:

javascript - YouTube iFrame API 行为不一致/不确定

带有 IE7 问题的 jQuery UI 选项卡

JQuery UI - 多态地使用小部件

javascript - 如果内容与另一个 div 匹配,则隐藏 li 项目

javascript - 页脚居中 div

javascript - 如何设置一个支持javascript的简单浏览器?

javascript - JQuery 的 Web 服务调用失败

javascript - 从 JSON 数组中提取单个变量

javascript - 引导列表组中的可单击按钮

javascript - 动画 jQuery UI 可拖动元素回到起始位置