如何重用 jqGrid 选项
How to reuse jqGrid options
关于这个问题,我已经看到几个 post。却得不到我想要的实际答案。
我知道我可以为应用程序中的所有 jqGrids 设置全局设置。那么我不需要在新创建的 jqGrids 中提及那些选项。
但我想设置一些模块特定的选项设置。假设我想将 jqGrid 用于我的销售模块。我还设置了一些选项作为我所有 jqGrids 的全局选项。现在对于销售模块,我希望每个销售 jqGrid 都将共享一些通用选项。但是任何销售网格都可以覆盖通用选项中的一个或两个选项。我该怎么做。
如果您能够使用 PHP
或类似的服务器端语言,这很容易实现:
$("#my_grid").jqGrid({
<?php
include "global_jqGrid_options.js";
include "sales_jqGrid_options.js";
?>
});
例如,您的选项文件如下所示:
height: 575,
autowidth: true,
shrinkToFit: true
第二个包含文件中的选项应该覆盖第一个包含文件中的并发选项(但我还没有测试过)。
这真的很容易做到。你应该明白创建 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 中不使用,您仍然可以在公共对象中包含最常见的选项,并且在创建网格 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
});
关于这个问题,我已经看到几个 post。却得不到我想要的实际答案。
我知道我可以为应用程序中的所有 jqGrids 设置全局设置。那么我不需要在新创建的 jqGrids 中提及那些选项。
但我想设置一些模块特定的选项设置。假设我想将 jqGrid 用于我的销售模块。我还设置了一些选项作为我所有 jqGrids 的全局选项。现在对于销售模块,我希望每个销售 jqGrid 都将共享一些通用选项。但是任何销售网格都可以覆盖通用选项中的一个或两个选项。我该怎么做。
如果您能够使用 PHP
或类似的服务器端语言,这很容易实现:
$("#my_grid").jqGrid({
<?php
include "global_jqGrid_options.js";
include "sales_jqGrid_options.js";
?>
});
例如,您的选项文件如下所示:
height: 575,
autowidth: true,
shrinkToFit: true
第二个包含文件中的选项应该覆盖第一个包含文件中的并发选项(但我还没有测试过)。
这真的很容易做到。你应该明白创建 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 中不使用,您仍然可以在公共对象中包含最常见的选项,并且在创建网格 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
});