在我们的应用程序中,我们有超过100个网格,我们需要在网格的标题栏上显示帮助按钮,因为我已经使用
创建了一个插件$.jgrid.extend({
EnableHelpButton: function(value) {
var $t = this;
...............;
}
});
目前,我转到网格的每个.html页面,需要调用EnableHelpButton,如下面的代码所示。
----------------- Index1.html -------------------------
$("#TestGrid1").bind("jqGridInitGrid", function () {
$(this).EnableHelpButton(true);
});
----------------- Index2.html -------------------------
$("#TestGrid2").bind("jqGridInitGrid", function () {
$(this).EnableHelpButton(true);
});
如何创建在每个网格的jqGridInitGrid事件上调用此EnableHelpButton的通用方法。它应该在一个地方写一次,它应该适用于每个网格。
答案 0 :(得分:0)
您必须在每个页面上对自定义函数进行一些特定的调用。一种方法是定义你的插件,所以
$.jgrid.extend({
EnableHelpButton: function(value) {
var $t = this;
...............;
},
myInit: function () {
return this.each(function () {
$(this).bind("jqGridInitGrid", function ({
$(this).EnableHelpButton(true);
});
});
}
});
即使在这种情况下,您也需要在每个页面上添加.jqGrid("myInit")
来电。您可以在{/ 1}转换为网格之前调用myInit
。例如,而不是
<table>
您将立即使用
$("#grid").jqGrid({
... // parameter used to create jqGrid
});
只有当从不在您的任何网格中使用$("#grid").jqGrid("myInit").jqGrid({
... // parameter used to create jqGrid
});
回调时,您才能使用回调代替onInitGrid
。如果您需要在每个页面中包含的一些JavaScript代码中定义回调:
jqGridInitGrid
您将为每个网格设置$.extend(true, $.jgrid.defaults, {
onInitGrid: function () {
$(this).EnableHelpButton(true);
}
});
的默认实施方式。
因此onInitGrid
回调中常见初始化的定义产生了最短的实现,但是限制你不应该在你的网格中使用回调。或者,您可以定义方法onInitGrid
,它可以添加所有绑定,您可以在每个网格上添加myInit
。最后一种方法适用于每个jqGrid。