【发布时间】:2012-01-12 09:56:39
【问题描述】:
我需要在重新调整大小、重新排序、隐藏列之后保存网格中的状态。
一切正常,除了列过滤器(下拉菜单、文本字段、日期选择器)在包含过滤器的列被移动后(collumnhooser)没有恢复到正确的列中。
使用下面的 JavaScript,我可以恢复大部分我需要的内容(列的大小、顺序和可见性),但恢复正确列中的过滤器不起作用。 (过滤器出现在它们应该出现的位置之后的几列。
var listName = jQuery('#list').jqGrid('getGridParam', 'customName');
var colModel = LoadColumnModel(listName);
var perm = jQuery.cookies.get(listName + '_list_perm');
var rowNumber = jQuery.cookies.get(listName + '_list_rowNumber');
if (colModel) {
var grid = jQuery('#list');
for (var i = 0; i < colModel.length; i++) {
var column = colModel[i];
if (column.hidden) {
grid.jqGrid('hideCol', column.name);
};
***//I hoped next line would do the trick, but it didn't :(***
if (column.search && column.searchoptions) {
grid.jqGrid('setColProp', column.name, { search: true, searchoptions: column.searchoptions });
};
}
grid.jqGrid('setGridParam', { colModel: colModel });
loadGrid = false;
if (rowNumber) {
grid.jqGrid('setGridParam', { rowNum: rowNumber });
jQuery('.ui-pg-selbox').val(rowNumber);
}
grid.trigger('reloadGrid');
if (perm) {
grid.jqGrid("remapColumns", perm, true);
}
}
有人知道吗?
【问题讨论】:
标签: jqgrid filter state restore