当前位置: 首页 > 知识库问答 >
问题:

免费jqgrid-jqgrid警告对话框

龚威
2023-03-14

全部的

我试图在按下工具栏按钮[顶部寻呼机]时实现自定义警告消息,如“请选择行”。我不想使用警报!!

我遵循了Oleg的一个例子(至少对我来说是JqGrid大师!!)i、 e.Stackoverflow参考-jqGrid警告对话框。Oleg演示参考-http://www.ok-soft-gmbh.com/jqGrid/Warning.htm

如果我使用与Oleg演示中相同的版本,所有这些都可以正常工作。但如果我更改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>

知道在后来的版本中模态用法是否改变了吗?

向你问好,Sundar

共有1个答案

詹杰
2023-03-14

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

html prettyprint-override"><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>

包括英文语言环境文件网格。语言环境(英语)。js不是必需的,因为它现在包含在免费jqGrid的主代码中(jquery.jqGrid.min.jsjquery.jqGrid.src.js)。

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

$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
        );
    }
});

显示的对话框如下所示

如果要使用区域设置文件中的文本元素,则可以将代码修改为以下内容

$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
        );
    }
});

如果要显示完全相同的警报对话框,如果未选择任何行,则显示免费jqGrid,那么代码可能特别简单

$grid.jqGrid("navButtonAdd", {
    caption: "Click me!",
    onClickButton: function () {
        this.modalAlert();
    }
});

在这种情况下,您无法自定义文本,但用法非常简单。

如果您想像在旧演示中一样使用createModalviewModal,您应该了解以下内容。免费的jqGrid中当然有许多更改。代码中的主要兼容性问题:应该通过将this设置为网格的DOM来调用$.jgrid.createModal。因此必须将旧演示中的$.jgrid.createModal(...)修改为$.jgrid.createModal.call(this,...)。旧演示中的下一个问题非常简单。条件$("#" alertIDs.themodal). html() === null在当前版本的jQuery中是错误的,最好使用$("#" alertIDs.themodal). long===0。这是旧演示中的下一个主要问题。完整代码可以是例如以下内容

$grid.jqGrid("navButtonAdd", {
    caption: "Click me!",
    onClickButton: function () {
        var $self = $(this),
            p = $self.jqGrid("getGridParam"),
            gridId = p.id,
            alertIDs = {
                themodal: "myalertmod_" + gridId,
                modalhead: "myalerthd_" + gridId,
                modalcontent: "myalertcnt_" + gridId
            },
            alertSelector = "#" + $.jgrid.jqID(alertIDs.themodal),
            alertText = $self.jqGrid("getGridRes", "nav.alerttext"),
            alertTitle = $self.jqGrid("getGridRes", "nav.alertcap");
        if ($(alertSelector).length === 0) {
            $.jgrid.createModal.call(this,
                alertIDs,
                "<div>" + alertText + "</div>",
                {
                    gbox: p.gBox,
                    jqModal: true,
                    drag: true,
                    resize: true,
                    caption: alertTitle,
                    top: 100,
                    left: 100,
                    width: 200,
                    height: "auto",
                    closeOnEscape: true,
                    zIndex: null
                },
                "", "", true);
        }
        $.jgrid.viewModal(
            alertSelector,
            {
                gbox: p.gBox,
                toTop: true
            });
    }
});
 类似资料:
  • 我们发现,再次使用GridUnload和grid load时,工具栏搜索将被完全删除: 此行已删除完成。

  • jqGrid 是一个用来显示网格数据的jQuery插件,文档比较全面,附带中文版本。 主要特点: -Full control with JavaScript API -Data returned from the server is XML -Simple configuration -Ability to load big datasets (paging) -Resizable columns

  • 问题内容: 用于保存jqgrid状态。它使用列号保存jqgrid列状态。如果在服务器中更改了jqgrid colmodel,这将导致浏览器中的javascript错误。 免费的jqgrid是从今天的git master下载的。调整列大小或移动行后处于状态保存 改为 并在状态下以loadComplete代码还原 与 现在行 导致错误 如何解决此问题,以便在更改列定义时可以使用列状态? 方法定义为 问

  • html5有数字输入类型,如 在这种情况下,输入时禁用非数字字符。触摸设备中自动显示纯本机数字键盘。 如何强制自由jqgrid字段编辑使用此类型? jgrid列定义为 jqrid是从远程json数据创建的。使用内联和表单编辑和搜索工具栏。这允许输入任何字符。在触摸设备全键盘出现。 如何解决此问题,以便在编辑和工具栏搜索中,此字段显示为属性? 如何指定输入仅为整数或允许小数点?可能是html5验证属

  • 问题内容: 当我使用网格时,它被破坏了:没有寻呼机/没有标题。 在Wiki中,我发现: 与以前的方法的唯一区别是,网格已被破坏,但是表格元素和分页器(如果有)可以再次使用。 我在GridUnload / GridDestroy之间找不到任何区别,还是我有问题? 我使用jqGrid3.8。 问题答案: 为了能够在页面上创建jqGrid,必须在要查看网格的页面位置插入一个空元素。table元素的最简单

  • 问题内容: iv在jqgrid中看到了@Oleg的行总和示例,但我尝试应用它,但它无法正常工作,我有以下网格,我需要为其计算金额值。 请奥列格(Oleg)帮助,我已经尝试了您的示例,但是由于某些原因它没有起作用。 问题答案: 如果我理解的正确,则希望将其放置在页脚getCol和footerData方法中: 该可用于从“量”柱,并且尊重计算所有数字的总和,你可以在底部放置列中的文本“总计:”和在底部