【问题标题】:jqgrid search condition not showingjqgrid搜索条件未显示
【发布时间】:2015-11-19 00:43:06
【问题描述】:

我正在试图弄清楚如何在 jqgrid 4.6 中使用搜索功能,基本上我在做和这里一样的事情:http://www.codeproject.com/Articles/58357/Using-jqGrid-s-search-toolbar-with-multiple-filter

但在搜索面板中,条件中没有显示任何内容,我可以选择“相等”或“包含”:

这是我的代码,我错过了什么吗?

 function showGrid() {
    $('#ListMessagesGrid').jqGrid({
        caption: paramFromView.Caption,
        colNames: ['EB_USER_MESSAGE_ID', paramFromView.MESSAGE_INFO_IDENTIFIER, paramFromView.MESSAGE_INFO_TIMESTAMP,
          paramFromView.MESSAGE_PARTY_FROM, paramFromView.MESSAGE_PARTY_TO, paramFromView.MESSAGE_COLLAB_SERVICE,
        paramFromView.MESSAGE_COLLAB_ACTION, paramFromView.MESSAGE_COLLAB_AGREEMENTREF, paramFromView.MESSAGE_COLLAB_CONVERSATION_ID],
        colModel: [
                    { name: 'EB_USER_MESSAGE_ID', index: 'EB_USER_MESSAGE_ID', width: 80, hidden: false, key: true, search: false },
                    { name: 'MESSAGE_INFO_IDENTIFIER', index: 'MESSAGE_INFO_IDENTIFIER', width: 600, searchoptions: { sopt: ['eq', 'cn'] } },
                    { name: 'MESSAGE_INFO_TIMESTAMP', index: 'MESSAGE_INFO_TIMESTAMP', width: 450 },
                    { name: 'MESSAGE_PARTY_FROM', index: 'MESSAGE_PARTY_FROM', width: 200 },
                    { name: 'MESSAGE_PARTY_TO', index: 'MESSAGE_PARTY_TO', width: 200 },
                    { name: 'MESSAGE_COLLAB_SERVICE', index: 'MESSAGE_COLLAB_SERVICE', width: 450 },
                    { name: 'MESSAGE_COLLAB_ACTION', index: 'MESSAGE_COLLAB_ACTION', width: 300 },
                    { name: 'MESSAGE_COLLAB_AGREEMENTREF', index: 'MESSAGE_COLLAB_AGREEMENTREF', width: 350 },
                    { name: 'MESSAGE_COLLAB_CONVERSATION_ID', index: 'MESSAGE_COLLAB_CONVERSATION_ID', width: 650 }
        ],
        hidegrid: false,
        multiselect: true,
        pager: jQuery('#ListMessagesPager'),
        sortname: 'EB_USER_MESSAGE_ID',
        rowNum: paramFromView.PageSize,
        rowList: [10, 20, 50, 100],
        sortorder: "desc",
        width: paramFromView.Width,
        height: paramFromView.Height,
        datatype: 'json',
        caption: paramFromView.Caption,
        viewrecords: true,
        autoencode : true,
        mtype: 'GET',
        jsonReader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            userdata: "userdata"
        },
        url: paramFromView.Url
    }).navGrid('#ListMessagesPager', { view: false, del: false, add: false, edit: false },
       { width: 400 }, // default settings for edit
       {}, // default settings for add
       {}, // delete instead that del:false we need this
        {
            closeOnEscape: true, multipleSearch: true,
            closeAfterSearch: true
        }, // search options
       {} /* view parameters*/
     ).navButtonAdd('#ListMessagesPager', {
         caption: paramFromView.DeleteAllCaption, buttonimg: "", onClickButton: function () {
             if (confirm(paramFromView.DeleteAllConfirmationMessage)) {
                 document.location = paramFromView.ClearGridUrl;
             }
             else {
                 $('#ListMessagesGrid').resetSelection();
             }
         }, position: "last"
     });
};

更新

我发现了一些东西:

由于某种原因 aoprs 数组中的所有值都未定义,所以下拉列表没有被填充,有没有办法解决这个问题?

【问题讨论】:

  • 能否提供重现问题的演示(例如 JSFiddle)?如果您需要从服务器加载数据,那么您可以使用 JSFiddle 提供的url: "/echo/json/"。例如,请参阅此处的示例:jsfiddle.net/andm1299/14
  • 感谢您的回复,它可以在 JSFiddle:jsfiddle.net/andm1299/16 中使用,但在我的应用程序中,运算符只是没有显示...
  • 您确定在有问题的应用程序中包含i18n/grid.locale-en.js 之前的jquery.jqGrid.min.js 吗?
  • 谢谢!那行得通。
  • 不客气!我在答案中发布了相同的信息。我建议你升级到免费的 jqGrid 4.10.0,你不会有这样的问题。

标签: jquery jqgrid


【解决方案1】:

您确定在有问题的应用程序中将i18n/grid.locale-en.js 包含在jquery.jqGrid.min.js 之前?这是本案的典型错误。

我建议你尝试使用更新版本的 jqGrid。我开发例如free jqGrid。它是基于 jqGrid 4.7 的 jqGrid 的分支:在 MIT 和 GPLv2 许可下可用的最新版本。免费 jqGrid 也在 MIT 和 GPLv2 许可下提供。主文件jquery.jqGrid.min.js(或jquery.jqGrid.src.js)已经包含英语语言环境i18n/grid.locale-en.js。因此,仅在使用其他语言的情况下才需要包含语言环境文件。免费的 jqGrid 包含许多我在 wiki 中描述的附加增强功能以​​及每个版本的自述文件。如果您想在 Internet 应用程序中使用免费的 jqGrid,我建议您使用来自 CDN 的 URL。详情见the wiki文章。

【讨论】: