使用setColProp更改jqgrid工具栏过滤器中的搜索选项
我正在使用jqGrid 4.4.5和工具栏过滤器。网格可以根据条件(例如收件箱或发件箱信件)重新加载。我使用列的选择选项。我需要更改“类型”列的选择选项。例如,如果网格显示“收件箱信件”,则“选择选项”显示“a,B”,否则显示“C,D”。 我使用以下代码创建网格:使用setColProp更改jqgrid工具栏过滤器中的搜索选项,jqgrid,Jqgrid,我正在使用jqGrid 4.4.5和工具栏过滤器。网格可以根据条件(例如收件箱或发件箱信件)重新加载。我使用列的选择选项。我需要更改“类型”列的选择选项。例如,如果网格显示“收件箱信件”,则“选择选项”显示“a,B”,否则显示“C,D”。 我使用以下代码创建网格: function creatGrid() { var inboxSearchOptions = 'A:A;B:B;All:';//inbox Options var inboxEditOptions = 'A:A;B:B'; va
function creatGrid() {
var inboxSearchOptions = 'A:A;B:B;All:';//inbox Options
var inboxEditOptions = 'A:A;B:B';
var outboxSearchOptions = 'C:C;D:D;ALL:';
var outboxEditOptions = 'C:C;D:D';
grid.jqGrid({
url: 'jqGridHandler.ashx',
datatype: 'json',
width: 100,
height: 200,
colNames: ['Email', 'Subject', 'Type', 'ID'],
colModel: [
{ name: 'Email', width: 100, sortable: false, },
{ name: 'Subject', width: 100, sortable: false, },
{
name: 'Type',
width: 100,
search: true,
formatter: 'select',
edittype: 'select',
editoptions: { value: (($.cookie("calledFrom") == "inbox") ? inboxEditOptions : outboxEditOptions), defaultValue: 'ALL' },
stype: 'select',
searchoptions: { sopt: ['eq', 'ne'], value: (($.cookie("calledFrom") == "inbox") ? inboxSearchOptions : outboxSearchOptions) },
},
{ name: 'ID', width: 100, sortable: false, hidden: true, key: true },
],
rowNum: 20,
loadonce: true,
rowList: [5, 10, 20],
recordpos: "left",
ignoreCase: true,
toppager: true,
viewrecords: true,
multiselect: true,
sortorder: "desc",
scrollOffset: 1,
editurl: 'clientArray',
multiboxonly: true,
jsonReader:
{
repeatitems: false,
},
gridview: true,
}
}
然后我使用以下代码重新加载网格:
function doReloadMainGrid() {
switch (($.cookie("calledFrom")) ) {
case "inbox":
{
window.grid.setColProp("Type", {
searchoptions: {
value: inboxSearchOptions,
},
editoptions: {
value: inboxEditOptions
},
});
}
break;
case "outbox":
window.grid.setColProp("Type", {
searchoptions: {
value: outboxSearchOptions,
},
editoptions: {
value: outboxEditOptions
},
});
break;
}
var url = createUrl();
window.grid.setGridParam({ datatype: 'json' });
window.grid.setGridParam({ url: url });
window.grid.trigger("reloadGrid", { current: true });
}
但是“setColProp”没有效果。我读过,但它对我来说不是一个好的解决方案。我错了什么?
提前感谢
setColProp
不要更改现有的过滤器工具栏。如果您只是从cookie或localStorage
中获取值,那么最好在filterToolbar
方法创建过滤器工具栏之前执行此操作
您可以使用destroiltertoolbar
在colModel
中使用新值重新创建过滤器工具栏。如果您必须使用jqGrid的旧版本,您可以按照以下说明向jqGrid的旧版本添加代码destroyFilterToolbar