【发布时间】:2015-11-16 06:52:57
【问题描述】:
我想在 jqgrid 上有一个过滤器工具栏。我可以看到过滤器工具栏,但无法更改过滤器运算符(运算符菜单未出现在网格上)。并且默认搜索运算符是“Equal”,而我希望它是“Contains”。
库下载自:here
这是我的 BundleConfig.cs:
bundles.Add(new StyleBundle("~/Content/Admin").Include(
"~/Content/Admin/css/bootstrap.min.css",
"~/Content/Admin/css/pages.min.css",
"~/Content/Admin/css/widgets.min.css",
"~/Content/Admin/css/pixel-admin.min.css",
"~/Content/Admin/css/rtl.min.css",
"~/Content/Admin/css/themes.min.css",
"~/Content/Admin/css/jquery-ui.1.10.4.css",
"~/Content/Admin/css/clockpicker/clockpicker.css",
"~/Content/Admin/css/jstree.min.css",
"~/Content/Admin/css/jqgrid/searchFilter.css",
"~/Content/Admin/css/jqgrid/ui.jqgrid-bootstrap-ui.css",
"~/Content/Admin/css/jqgrid/ui.jqgrid-bootstrap.css",
"~/Content/Admin/css/jqgrid/ui.jqgrid.css",
"~/Content/Admin/css/jqgrid/ui.multiselect.css"
));
bundles.Add(new ScriptBundle("~/Scripts/Admin").Include(
"~/Scripts/Admin/bootstrap.min.js",
"~/Scripts/Admin/jquery-1.8.2.min.js",
"~/Scripts/Admin/jquery-ui-1.10.4.min.js",
"~/Scripts/Admin/jqgrid/jquery.jqGrid.min.js",
"~/Scripts/Admin/jqgrid/jquery.contextmenu.js",
"~/Scripts/Admin/jqgrid/jquery.searchFilter.js",
"~/Scripts/Admin/i18n/grid.locale-en.js",
"~/Scripts/Admin/i18n/grid.locale-fa.js",
"~/Scripts/Admin/clockpicker.js",
"~/Scripts/Admin/highcharts.js",
"~/Scripts/Admin/jstree.min.js",
"~/Scripts/Admin/pixel-admin.min.js",
"~/Scripts/Admin/Base64Helper.js"
));
网格设置:
$("#grvList").jqGrid({
loadError: function (error) {
var responseTitle = $(error.responseText).filter('title').get(0);
$.growl.error({ message: responseTitle.innerHTML });
},
loadComplete: function (data) {
},
onSelectRow: function (rowid, iRow, iCol, e) {
fillSelectedRow(rowid);
},
direction: dir,
url: '@Url.Action("getList","Countries")',
datatype: 'json',
mtype: 'GET',
jsonReader: {
root: 'rows',
total: 'total',
page: 'page',
records: 'records',
cell: 'cell',
id: 'Id',
repeatitems: false
},
colNames: ['Id', 'Title', 'Code', 'Abbrevation', 'State'],
colModel: [
{ name: 'Id', label: 'Id', key: true, hidden: true },
{ name: 'Title', label: '@Res.Public.Countries.Title', sorttype: 'string', searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] } },
{ name: 'Code', label: '@Res.Public.Countries.Code', sorttype: 'integer', searchoptions: { sopt: ['eq', 'ne', 'le', 'lt', 'gt', 'ge'] } },
{ name: 'Abbrevation', label: '@Res.Public.Countries.Abb', search:false },
{
name: 'State', label: '@Res.Public.Countries.State',search:false, formatter: function genderformatter(cellvalue, options, rowObject) {
if (cellvalue === 0) {
return "@Res.Public.Admin.Active";
}
else if (cellvalue === 1) {
return "@Res.Public.Admin.Inactive";
}
else
return "";
}
}
],
rowNum: 10,
sortname: 'Title',
rowList: [5, 10, 20],
viewrecords: true,
sortorder: "desc",
pager: '#pager',
loadonce: true,
height: "auto",
gridview: true,
width: null,
autowidth: true
});
jQuery("#grvList").jqGrid('filterToolbar', { defaultSearch: 'cn', searchOperators: true, searchOnEnter: false, searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] } });
我哪里错了?
【问题讨论】:
-
您可以更新脚本包含的顺序,有些可以省略,例如
jquery.searchFilter.js。 trirand.com/jqgridwiki/doku.php?id=wiki:how_to_install -
我按照链接上的说明进行操作,但这并没有解决我的问题!
-
您使用哪个版本的 jqGrid 以及来自哪个分支(free jqGrid、Guriddo jqGrid JS 或版本 删除
jquery.searchFilter.js和searchFilter.css并包含jquery.contextmenu.js只有当你真的使用插件时。 -
我已经从这里下载了库:trirand.com/blog/?page_id=6我不知道它是哪个版本。我尝试删除 searchFilter.js 和 .css 并添加了上下文菜单。什么都没有了!顺便说一句,我还编辑了 jquery.jqGrid.js filterToolbar 函数并将 defaultSeach 设置为“cn”,但我仍然无法通过 'contain' 运算符过滤数据
-
抱歉,您不应该从一种方式跳到另一种方式。关于上下文菜单和其他:我的意思是不要只包含您找到的所有文件。我使用 free jqGrid fork,这是我在更改 trirand 的许可协议后开发的(请参阅here)。页面trirand.com/blog/?page_id=6 被误解了。你在这里下载 Guriddo jqGrid JS,因此如果你使用它,你应该阅读guriddo.net/?page_id=103334 的价格。关于你的主要问题。我创建了演示 jsfiddle.net/OlegKi/kvtrtzc5,它使用 free jqGrid。试试看。
标签: jquery asp.net-mvc jqgrid