2

使用 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 没有恢复?
其次,有没有办法以编程方式删除第二个搜索行?

4

1 回答 1

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();

您可以在此处查看相应的演示。这是我的另一个旧答案对演示的一个小修改。

顺便说一下,将在 jqGrid 的下一个版本中使用的新过滤器不会有问题(参见这里的演示)。

于 2011-03-25T09:07:15.390 回答