通过jqGridImport恢复JQGrid时,搜索信息不正确

时间:2011-03-25 06:03:33

标签: jqgrid jqgrid-php

使用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不会重新启动?
第二种方法是以编程方式删除第二个搜索行?

1 个答案:

答案 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 demoold answer的一个小修改。

顺便说一句,将在下一版jqGrid中使用的新过滤器不会出现问题(请参阅演示here)。