在jqgrid中禁用模式弹出窗口

我想在不使用jqgrid中的模式弹出窗口的情况下创建自定义消息。 有没有办法禁用它? 或者有没有办法改变模态的内容?

你可以说得更详细点吗? 如果你想要你自己的modal dialog,你可以添加一个事件处理程序(例如,在编辑按钮上),当被触发时将打开你自己的自定义对话框。 您可以使用jQuery UI对话框来实现此目的,并将其打开到您自己的自定义表单。

更新检查jqGrid源代码后, info_dialog是用于显示此特定对话框的函数。 有一个单独的调用来显示“正在加载…”弹出窗口。 另外,似乎没有一种简单的方法可以禁用info_dialog 。 但是,您可以修改jqGrid源以完成所需的操作。 你可以:

  • 立即从info_dialog返回 – 这可能是极端的,因为它可以报告您需要的其他错误 – 或者,

  • 查找并注释掉显示此特定ajax错误的调用。 有一些试验和错误,但只有18个调用此function,你不会花很长时间追踪。 实际上,从注释掉这个实例开始,因为它是从ajax调用的error函数调用的:

    info_dialog(a.jgrid.errors.errcap,e.status+" : "+e.statusText+"
    "+u,a.jgrid.edit.bClose);

显然,这样的修改是最后的手段,但是一旦它起作用,您可以考虑为jqGrid团队滚动补丁以禁用警报。

在css文件中的某处搜索div.loadingui div.msgbox {…} 。 我认为编辑这个css类可以完成工作。

我知道这不是主题,但你试过SlickGrid http://wiki.github.com/mleibman/SlickGrid/examples

我已经在运行时更改了模态弹出窗口的z-index,一旦你可以访问它,你可以进行任何自定义

 editoptions: { size: 20, maxlength: 10, dataEvents: [ { type: 'keypress', fn: function (e) { if (e.keyCode == 13) { **$("#info_dialog").css('z-index', '100000');** } } } ] } } 

此外,如果您有服务器响应(如错误),则可以在其他位置执行此操作

 onCellSelect: function (rowid, iCol, aData) { currentRow = rowid; if (rowid && rowid !== lastsel) { if (lastsel) jQuery('#ppGrid').jqGrid('restoreRow', lastsel); $("#ppGrid").jqGrid('editRow', rowid, true, null, null, null, {}, reload,OnError); lastsel = rowid; } else if (rowid && rowid === lastsel) { $("#ppGrid").jqGrid('editRow', rowid, true, null, null, null, {}, reload,OnError); } } 

是的,你可以做到。 你可以将可见属性设为false [ $("#info_dialog").visible(false); ]模态框,你可以调用你的自定义模态框。

 editrules: { custom: true, custom_func: validate_edit } function validate_edit(posdata, colName) { var message = ""; if (posdata != '' && $.isNumeric(posdata)) return [true, ""]; if (posdata == '') message = colName + " field is required" if (!$.isNumeric(posdata)) message = posdata + " is not a number"; alert(message); $("#info_dialog").visible(false); return [false, ""]; }