我看过几篇关于这个问题的帖子。但没有得到我想要的实际答案。
我知道我可以为应用程序中的所有 jqGrid 设置全局设置。那么我就不需要在新创建的 jqGrids 中提及这些选项了。
但我想设置一些模块特定的选项设置。假设我想将 jqGrid 用于我的销售模块。我还为我的所有 jqGrid 设置了一些选项作为全局选项。现在对于销售模块,我希望每个销售 jqGrid 都共享一些通用选项。但任何销售网格都可以覆盖通用选项中的一两个选项。我怎样才能做到这一点。
最佳答案
这真的很容易做到。你应该明白创建 jqGrid 的代码看起来像
$("#gridid").jqGrid(objectWithGridOptions);
其中一个主要使用匿名内联对象初始化,例如
$("#gridid").jqGrid({
// ... some options
});
但它没有做更多的事情
var objectWithGridOptions = {
// ... some options
};
$("#gridid").jqGrid(objectWithGridOptions);
所以如果你想创建多个网格
$("#gridid1").jqGrid({
// ... some common options
// ... some options specific for grid 1
});
$("#gridid2").jqGrid({
// ... some common options
// ... some options specific for grid 2
});
$("#gridid3").jqGrid({
// ... some common options
// ... some options specific for grid 3
});
然后您可以使用通用选项定义对象并使用 $.extend 扩展它到网格的特定对象。您甚至可以覆盖一些常用选项。因此,如果您在网格 1 和网格 2 中使用某些选项,但不在网格 3 中使用,您仍然可以在公共(public)对象中包含最常见的选项,并且只需在创建网格 3 期间包含新值即可。
代码看起来像
// the part can be in separate js file which you includes
// on all pages of your project
var commonModuleOption = {
// ... some common options
};
$("#gridid1").jqGrid($.extend(true, {}, commonModuleOption, {
// ... some options specific for grid 1
});
$("#gridid2").jqGrid($.extend(true, {}, commonModuleOption, {
// ... some options specific for grid 2
});
$("#gridid3").jqGrid($.extend(true, {}, commonModuleOption, {
// ... some options specific for grid 3
});
关于javascript - 如何重用 jqGrid 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30369389/