免费jqgrid - jqGrid警告对话框

时间:2015-09-13 12:44:25

标签: jqgrid free-jqgrid

所有

我正在尝试实施自定义警告消息,例如'请选择行'当按下工具栏按钮[top pager]时。我不想使用警报!!

我跟随了Oleg的一个例子(JqGrid大师至少给我!!) ieStackoverflow reference - jqGrid warning dialog。 Oleg演示参考 - http://www.ok-soft-gmbh.com/jqGrid/Warning.htm

如果我使用与Oleg demo相同的版本,一切正常。但是,如果我更改jqGrid版本4.8.0,相同的演示不起作用:(

我用过 -

<script type="text/javascript"     src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/js/jquery.jqgrid.src.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/css/ui.jqgrid.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/js/i18n/grid.locale-en.js"></script>

而不是

<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.0/js/jquery.jqGrid.src.js"></script>
<link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.0/css/ui.jqgrid.css" />
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.0/js/i18n/grid.locale-en.js"></script>

是否知道在以后的版本中是否更改了模态用法?

最诚挚的问候, 孙大信

1 个答案:

答案 0 :(得分:2)

首先,我建议您使用最新版本的免费jqGrid。它的4.9.2。您可以从GitHub下载或直接使用CDN(请参阅此处)。相应的网址将是

DelegatingFuture

以及可选的语言文件

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/css/ui.jqgrid.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/js/jquery.jqgrid.min.js"></script>

不需要包含英语区域设置文件<script src="https://cdn.jsdelivr.net/free-jqgrid/4.9.2/js/i18n/grid.locale-de.js"></script> ,因为它现在包含在免费jqGrid(grid.locale-en.jsjquery.jqgrid.min.js)的主代码中。

在我解释旧演示中的问题之前,我建议您使用简化方法jquery.jqgrid.src.js来创建小对话框。相应的代码可能是

$.jgrid.info_dialog

显示的对话框如下所示

enter image description here

如果要使用语言环境文件中的文本元素,则可以将代码修改为以下

$grid.jqGrid("navButtonAdd", {
    caption: "Click me too!",
    onClickButton: function () {
        $.jgrid.info_dialog.call(this,
            "Warning",              // dialog title
            "Please, select row!",  // text inside of dialog
            "Close",                // text in the button
            { left: 100, top: 100 } // position relative to grid
        );
    }
});

如果要显示完全相同的警告对话框,如果没有选择任何行,则显示免费的jqGrid,那么代码可能非常简单

$grid.jqGrid("navButtonAdd", {
    caption: "Click me too!",
    onClickButton: function () {
        var $self = $(this),
            alertText = $self.jqGrid("getGridRes", "nav.alerttext"),
            alertTitle = $self.jqGrid("getGridRes", "nav.alertcap"),
            bClose = $self.jqGrid("getGridRes", "edit.bClose");
        $.jgrid.info_dialog.call(this,
            alertTitle, // dialog title
            alertText,  // text inside of dialog
            bClose,     // text in the button
            { left: 100, top: 100 } // position relative to grid
        );
    }
});

如果您无法自定义文本,但使用非常简单。

如果您想在旧版演示中使用$grid.jqGrid("navButtonAdd", { caption: "Click me!", onClickButton: function () { this.modalAlert(); } }); createModal,则应了解以下内容。免费jqGrid会导致很多变化。代码中的主要兼容性问题:应该通过将viewModal设置为网格的DOM来调用$.jgrid.createModal。因此,必须将旧演示中的this修改为$.jgrid.createModal(...)。旧演示中的下一个问题非常简单。当前版本的jQuery中的条件$.jgrid.createModal.call(this,...)是错误的,应该更好地使用$("#"+alertIDs.themodal).html() === null。这是旧演示中的下一个主要问题。完整的代码可以是例如以下

$("#"+alertIDs.themodal).length === 0