5

我在 jqGrid 上有一些自定义工具栏按钮。其中一个取决于选择的行,就像内置的编辑和删除按钮一样。当用户在未选择任何行的情况下单击它时,我希望向用户显示来自内置编辑或删除按钮的相同警告对话框。也就是说,我想重用网格使用的对话框:

警告 请选择行

知道网格从哪里显示警报吗?

谢谢,斯科特

4

3 回答 3

8

我认为代码可能如下所示

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 在内部显示。

于 2012-08-14T21:02:05.970 回答
2

我刚刚尝试了 Oleg 的以下解决方案,但它对我不起作用。
进行一些调试后,我意识到这$("#"+alertIDs.themodal).html()对我来说是“未定义的”,因此 Oleg 提出的 if 案例无法正常工作。

我改变了这个:

if ($("#"+alertIDs.themodal).html() === null) {

进入这个:

if ($("#"+alertIDs.themodal).html() === null || $("#"+alertIDs.themodal).html() === undefined) {

现在工作正常。

于 2014-05-26T12:00:15.277 回答
-1
$.jgrid.info_dialog.call(this,
    "Warning",              // dialog title
    "Please, select row!"  // text inside of dialog
);

对我来说效果很好!

于 2016-06-28T11:58:41.390 回答