Как повторно использовать параметры jqGrid
Я видел несколько сообщений, касающихся этого вопроса. Но не получить тот ответ, который мне нужен.
Я знаю, что могу установить глобальную настройку для всех моих jqGrid в приложении. Тогда мне не нужно упоминать эти опции в недавно созданных jqGrids.
Но я хочу установить некоторые настройки параметров модуля. Предположим, я хочу использовать jqGrid для моего модуля продаж. Я также установил некоторую опцию в качестве глобальной опции для всех моих jqGrid. Теперь для модуля продаж я хочу, чтобы каждый продаж jqGrid поделится некоторыми общими опциями. Но любая сетка продаж может переопределить один или два варианта из общего варианта. Как я могу это сделать?
2 ответа:
Это действительно легко сделать. Вы должны просто понимать, что код для создания 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 });
Затем вы можете определить объект с общими опциями и расширить его с помощью $.расширьте до конкретного объекта для сетки. Таким образом, вы даже можете переписать некоторые общие параметры. Так что если вы используете некоторые опции в сетке 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 });
Если вы можете использовать
PHP
или аналогичный язык на стороне сервера, это легко сделать:$("#my_grid").jqGrid({ <?php include "global_jqGrid_options.js"; include "sales_jqGrid_options.js"; ?> });
ваши файлы опций выглядят следующим образом, например:height: 575, autowidth: true, shrinkToFit: true
параметры из второго включаемого файла должны переопределять совпадающие параметры из первого (но я не проверял это).