我在 jqGrid 上有一些自定义工具栏按钮。其中一个取决于选择的行,就像内置的编辑和删除按钮一样。当用户在未选择任何行的情况下单击它时,我希望向用户显示来自内置编辑或删除按钮的相同警告对话框。也就是说,我想重用网格使用的对话框:
警告 请选择行
知道网格从哪里显示警报吗?
谢谢,斯科特
我认为代码可能如下所示
var alertIDs = {themodal: 'alertmod', modalhead: 'alerthd', modalcontent: 'alertcnt'};
$.jgrid.viewModal("#" + alertIDs.themodal,
{gbox: "#gbox_" + $.jgrid.jqID(this.p.id), jqm: true});
$("#jqg_alrt").focus();
其中this.p.id
(或$.jgrid.jqID(this.p.id)
)可以替换为网格的 id。为了更确定警报工作,我建议您使用更长的代码
var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'};
if ($("#"+alertIDs.themodal).html() === null) {
$.jgrid.createModal(alertIDs,"<div>"+$.jgrid.nav.alerttext+
"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>",
{gbox:"#gbox_"+$.jgrid.jqID(this.p.id),jqModal:true,drag:true,resize:true,
caption:$.jgrid.nav.alertcap,
top:100,left:100,width:200,height: 'auto',closeOnEscape:true,
zIndex: null},"","",true);
}
$.jgrid.viewModal("#"+alertIDs.themodal,
{gbox:"#gbox_"+$.jgrid.jqID(this.p.id),jqm:true});
$("#jqg_alrt").focus();
该演示演示了代码。它显示消息
每次单击"Click me!"
按钮时。
更新: 答案包含如何在免费 jqGrid中使用上述对话框的信息。它描述了许多选项。最简单的版本只包含一个简单的调用this.modalAlert();
。它显示相同的警报对话框,免费的 jqGrid 在内部显示。
我刚刚尝试了 Oleg 的以下解决方案,但它对我不起作用。
进行一些调试后,我意识到这$("#"+alertIDs.themodal).html()
对我来说是“未定义的”,因此 Oleg 提出的 if 案例无法正常工作。
我改变了这个:
if ($("#"+alertIDs.themodal).html() === null) {
进入这个:
if ($("#"+alertIDs.themodal).html() === null || $("#"+alertIDs.themodal).html() === undefined) {
现在工作正常。
$.jgrid.info_dialog.call(this,
"Warning", // dialog title
"Please, select row!" // text inside of dialog
);
对我来说效果很好!