使用jqGridExport导出数据后,我们使用jqGridImport导入。第一个问题是底栏选项没有回来,所以我之后添加了代码。所以代码看起来像:
$("#list").jqGridImport({imptype: 'jsonstring', impstring: gridSettings})
.jqGrid('navGrid','#pager', { edit: false, add: false, del: false, search: true, refresh:true },
{},{},{},{closeOnEscape: true, multipleSearch: true, closeAfterSearch: true},{});
gridSettings字符串的关键部分是:
"postData":{"_search":true,
"nd":1301031279941,
"rows":20,
"page":1,
"sidx":"a.ID",
"sord":"asc",
"filters":{"groupOp":"AND","rules": [{"field":"fname","op":"bw","data":"T"}]}
}
除搜索外,一切都很好。上面postData的一行搜索是正确的,但是有第二条搜索行,我只能将其描述为默认搜索行。如果我进入并从多个搜索框中删除该行,则一切都应该如此。
所以我的问题首先是,为什么当我使用jqGridImport恢复时,multipleSearch不会重新启动?
第二种方法是以编程方式删除第二个搜索行?
答案 0 :(得分:2)
使用导航器的底栏的行为是正确的,因为它不是作为网格的一部分实现的。所以你真的必须另外设置它。您可以自己编写导出和导入设置。
将在搜索对话框中添加的附加最后一行的情况确实是一个小问题,可以使用以下代码修复:
var grid = $("#list");
...
grid.searchGrid(prmSearch);
if (typeof(grid[0].p.postData.filters) === "string" &&
grid[0].p.postData.filters.length>0) {
$("#fbox_"+grid[0].id).searchFilter().del();
}
$("#fbox_"+grid[0].id).searchFilter().close();
您可以看到相应的演示here。这是对the demo的old answer的一个小修改。
顺便说一句,将在下一版jqGrid中使用的新过滤器不会出现问题(请参阅演示here)。