【发布时间】:2014-08-10 02:55:54
【问题描述】:
我正在使用 JQGrid 来显示记录。我在页面某处有一个文本框和一个按钮,用于搜索。我想搜索和过滤包含搜索词的行。我几乎找不到网络上的解决方案。目前在单击按钮时,我正在进行数据库搜索并重新加载网格。但是,由于性能影响,我想在客户端执行此操作。
【问题讨论】:
我正在使用 JQGrid 来显示记录。我在页面某处有一个文本框和一个按钮,用于搜索。我想搜索和过滤包含搜索词的行。我几乎找不到网络上的解决方案。目前在单击按钮时,我正在进行数据库搜索并重新加载网格。但是,由于性能影响,我想在客户端执行此操作。
【问题讨论】:
以下代码用于在表格标题中添加按钮和按钮单击事件
$('#t_list')
.append($("<div><label for=\"globalSearchText\">Global Search: </label><input id=\"globalSearchText\" class=\"jqsearch\" type=\"text\"></input> <button id=\"globalSearch\" type=\"button\">Search</button></div>"));
$("#globalSearchText").keypress(function (e) {
var key = e.charCode || e.keyCode || 0;
if (key === $.ui.keyCode.ENTER) { // 13
$("#globalSearch").click();
}
});
以下是本地搜索
$("#globalSearch").button({
icons: { primary: "ui-icon-search" },
text: false
}).click(function () {
var postData = $grid.jqGrid("getGridParam", "postData"),
colModel = $grid.jqGrid("getGridParam", "colModel"),
rules = [],
searchText = $("#globalSearchText").val(),
l = colModel.length,
i,
cm;
for (i = 0; i < l; i++) {
cm = colModel[i];
if (cm.search !== false && (cm.stype === undefined || cm.stype === "text")) {
rules.push({
field: cm.name,
op: "cn",
data: searchText
});
}
}
postData.filters = JSON.stringify({
groupOp: "OR",
rules: rules
});
$grid.jqGrid("setGridParam", { search: true });
$grid.trigger("reloadGrid", [{ page: 1, current: true }]);
return false;
});
【讨论】: