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
。 info_dialog
就是这种方法的一个例子。因此,人们应该使用$.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/。我使用的是演示free jqGrid分叉,这是我开发的,但与使用jqGrid的复古版本4.6相同。
的最后一句话。如果你知道打字稿的语法,你可以在free-jqgrid.d.ts答案找到很多类似的info_dialog
的使用问题。描述了$.jgrid
的方法和性质here(包括info_dialog)。你会发现here另外一些方法$.fmatter
, $.jqm
, $.jqDnR
和$.unformat
这是jqGrid的一部分,就像$.jgrid
一样。
您使用哪个版本的jqGrid(可以使用)以及从哪个版本的jqGrid([免费jqGrid](https://github.com/free-jqgrid/jqGrid),商业版[Guriddo jqGrid JS] /guriddo.net/?page_id=103334)或<= 4.7版本中的旧jqGrid)。此外,在代码**中看到**如何调用'info_dialog'很重要。取决于你使用的jqGrid的版本,你可以像'$ .jgrid.info_dialog.call($(“#grid”)[0],...)''正确地初始化'this'。 – Oleg