我尝试在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
$("#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的一部分。