gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:58:18 24 4
gpt4 key购买 nike

我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com