JqGrid-如何在jqGridInitGrid事件上为应用程序的每个网格执行自定义功能
在我们的应用程序中,我们有100多个网格,我们需要在网格标题栏上显示帮助按钮,为此,我使用JqGrid-如何在jqGridInitGrid事件上为应用程序的每个网格执行自定义功能,jqgrid,Jqgrid,在我们的应用程序中,我们有100多个网格,我们需要在网格标题栏上显示帮助按钮,为此,我使用 $.jgrid.extend({ EnableHelpButton: function(value) { var $t = this; ...............; } }); 目前,我转到grid的每个.html页面,需要调用EnableHelpButton,如下代码所示 -----------------Index1.html---
$.jgrid.extend({
EnableHelpButton: function(value) {
var $t = this;
...............;
}
});
目前,我转到grid的每个.html页面,需要调用EnableHelpButton,如下代码所示
-----------------Index1.html-------------------------
$("#TestGrid1").bind("jqGridInitGrid", function () {
$(this).EnableHelpButton(true);
});
$("#TestGrid2").bind("jqGridInitGrid", function () {
$(this).EnableHelpButton(true);
});
-----------------Index2.html-------------------------
$("#TestGrid1").bind("jqGridInitGrid", function () {
$(this).EnableHelpButton(true);
});
$("#TestGrid2").bind("jqGridInitGrid", function () {
$(this).EnableHelpButton(true);
});
如何在每个网格的jqGridInitGrid事件上创建调用此EnableHelpButton的通用方法。它应该在一个地方写一次,并且应该适用于每个网格。您必须在每个页面上对自定义函数进行特定调用。一种方法是定义你的插件
$.jgrid.extend({
EnableHelpButton:函数(值){
var$t=此;
...............;
},
myInit:函数(){
返回此。每个(函数(){
$(this).bind(“jqGridInitGrid”,函数({
$(此).EnableHelpButton(true);
});
});
}
});
即使在这种情况下,您也需要在每个页面上包含.jqGrid(“myInit”)
调用。您可以在
转换为网格之前调用myInit
。例如,代替
$(“#网格”).jqGrid({
…//用于创建jqGrid的参数
});
你现在可以用了
$(“#网格”).jqGrid(“myInit”).jqGrid({
…//用于创建jqGrid的参数
});
只有在任何网格中都不使用onInitGrid
回调时,才可以使用回调而不是jqGridInitGrid
。在这种情况下,只需在页面中包含的一些JavaScript代码中定义回调:
$.extend(true,$.jgrid.defaults{
onInitGrid:函数(){
$(此).EnableHelpButton(true);
}
});
通过这种方式,您将为每个网格设置onInitGrid
的默认实现
因此,
onInitGrid
回调中的公共初始化定义产生了最短的实现,但有一个限制,即您不应该在任何网格中使用回调。或者,您可以定义方法myInit
,该方法使所有绑定都可以添加。jqGrid(“myInit”)
在您的每个网格上。最后一种方法将适用于每个jqGrid。感谢您的Oleg,提供的解决方案工作完美且满足要求。