JqG​​rid - 如何在jqGridInitGrid事件上为每个应用程序网格执行自定义功能

时间:2015-04-08 14:18:47

标签: jqgrid

在我们的应用程序中,我们有超过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的通用方法。它应该在一个地方写一次,它应该适用于每个网格。

1 个答案:

答案 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。