在重新调整大小,重新排序,隐藏列之后,我需要将状态保存到网格中。
一切正常,除了在移动了过滤器的列(collumnchooser)后,列过滤器(下拉列表,文本字段,日期选择器)没有在正确的列中恢复。
使用以下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);
}
}
任何人都有线索?
答案 0 :(得分:1)
您不应在网格中设置searchoptions
。而不是你可以保存/恢复jqGrid的postData
参数。
我建议您查看the answer,the answer和this one。它显示了如何实现网格状态的保存/恢复。由于我在the answer中解释的原因,我使用了localStorage
而不是Cookie。