【问题标题】:jqgrid filtertoolbar not displaying filter operators like (==, !=, >=....)jqgrid filtertoolbar 不显示过滤器运算符,如(==,!=,>=....)
【发布时间】: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


【解决方案1】:

我的意思是不要只包含您找到的所有文件。我使用free jqGrid fork,这是我在更改 trirand 的许可协议后开发的(参见here)。页面http://trirand.com/blog/?page_id=6 被误解了。您在此处下载 Guriddo jqGrid JS,因此如果您使用它,您应该阅读http://guriddo.net/?page_id=103334 了解价格。关于你的主要问题。我创建了演示 jsfiddle.net/OlegKi/kvtrtzc5,它使用免费的 jqGrid。试试吧。我看不出你描述的问题。

【讨论】:

    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2017-01-09
    相关资源
    最近更新 更多