jqGrid.info_dialog不是函数,我必须调用extend吗



我尝试在jqGrid上使用info_dialog,但请参阅控制台中的TypeError: $(...).jqGrid.info_dialog is not a function

我(!)没有定义自己的info_dialog函数。但我可以在$.extend($.jgrid, ...中看到它,就像这里一样,所以我希望它在默认情况下可用。

info_dialog : function(caption, content,c_b, modalopt) {
var mopt = {
width:290,
height:'auto',

我必须以某种方式为网格启用它吗?或者我还需要做什么才能使用这里定义的版本(在我的网格上调用extend?..)

使用中的4.6.0https://cdnjs.com/libraries/jqgrid
正在使用https://cdnjs.com/libraries/free-jqgrid4.14.1

jqGrid不仅定义了可以用作$("#grid").jqGrid("methodName", ...)$("#grid").methodName(...)的"标准"方法,还定义了一些其他方法。"标准"方法将在$.fn.jqGrid.methodName下注册(例如,类似于$.fn.jqGrid.editGridRow函数),如果在$.jgrid.no_legacy_api = true;之前没有指定$.jgrid.no_legacy_api = true;,则也在$.fn.methodName下注册。

换句话说,只存在全局对象$.fn.jqGrid$.fn,它们包含"标准"jqGrid方法。

一些其他方法列表将在$.jgrid下注册,而不是在$.fn.jqGrid$.fn下注册。CCD_ 18就是这种方法的一个例子。因此,应该使用$.jgrid.info_dialog$.jgrid.jqID$.jgrid.htmlEncode$.jgrid.randId等等来使用这样的方法。大多数方法不需要初始化this(如$.jgrid.randId()$.jgrid.jqID("some.text")),但有些方法需要将this初始化为网格的DOM(用于生成网格的空<table>)。

例如,您可以使用

$grid.jqGrid("navButtonAdd", "#pager", {
caption: "Test",
onClickButton: function () {
$.jgrid.info_dialog.call(this,
"Warning with two buttons",
"Click the `test` button",
"Close",
{
buttons: [
{
text: ""text" button",
id: "buttid",
onClick: function() {
alert("click...");
}
}
]
}
);
}
});

请参阅https://jsfiddle.net/OlegKi/xLrbdspo/.我在我开发的免费演示jqGrid fork中使用了它,但你使用的jqGrid的4.6版本也是如此。

最后一句话。如果你知道TypeScript的语法,你可以在free-jqgrid.d.ts中找到许多问题的答案,比如info_dialog的用法。这里描述了$.jgrid的方法和性质(包括info_dialog)。在这里,您还会发现一些方法$.fmatter$.jqm$.jqDnR$.unformat,它们与$.jgrid一样是jqGrid的一部分。

最新更新