首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >启用了高级搜索的jqGrid对服务器的不同调用

启用了高级搜索的jqGrid对服务器的不同调用
EN

Stack Overflow用户
提问于 2011-05-26 05:22:32
回答 1查看 977关注 0票数 0

我在包装在ASP.NET web部件中的页面上有一个jqGrid。下面是它的定义:

代码语言:javascript
复制
$("#referent_grid").jqGrid({
    url: '<%= SPContext.Current.Site.Url %>' + wsBaseUrl + 'ReferentService.asmx/ListReferents',
    colNames: ['Full Name', 'Phone Number', 'Email', 'Department'],
    colModel: [
        { name: 'FullName', index: 'FullName', width: 240, align: 'left', search: true, stype: 'text', searchoptions: { sopt: ['eq', 'bw', 'bn', 'ew', 'en', 'cn', 'nc']} },
        { name: 'PhoneNumber', index: 'PhoneNumber', width: 120, align: 'left', search: true, stype: 'text', searchoptions: { sopt: ['eq', 'bw', 'bn', 'ew', 'en', 'cn', 'nc']} },
        { name: 'Email', index: 'Email', width: 180, align: 'left', search: true, stype: 'text', searchoptions: { sopt: ['eq', 'bw', 'bn', 'ew', 'en', 'cn', 'nc']} },
        { name: 'Department', index: 'Department', width: 180, align: 'left', search: true, stype: 'text', searchoptions: { sopt: ['eq', 'bw', 'bn', 'ew', 'en', 'cn', 'nc']} },
    ],
    jsonReader: {
        id: "ReferentID"
    },
    pager: $('#referent_grid_pager'),
    sortname: 'FullName',
    sortorder: "asc",
    height: '300',
    shrinkToFit: false,
    caption: 'Referent List'
});
$("#referent_grid").jqGrid('navGrid', '#referent_grid_pager',
    { add: true, addtitle: 'Add Referent', edit: true, edittitle: 'Edit Referent',
      del: true, deltitle: 'Delete Referent', refresh: true, refreshtitle: 'Refresh data',
      search: true, searchtitle: 'Advanced search filters',
      addfunc: addReferent, editfunc: editReferent
    },
    {}, // default settings for edit
    {}, // default settings for add
    { // define settings for Delete 
        mtype: "post", reloadAfterSubmit: true,
        url: '<%= SPContext.Current.Site.Url %>' + wsBaseUrl + 'ReferentService.asmx/DeleteReferent',
        resize: false,
        serializeDelData: function (postdata) {
            return JSON.stringify({ referentID: postdata.id });
        },
        afterSubmit: function (data, postdata) {
            var result = $.parseJSON(data.responseText);
            return [true, ''];
        }
    },
    { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true }, // search options
    {}
);

如你所见,我启用了高级搜索。我面临的问题是,在第一次调用页面时,jqGrid会调用ListReferents方法,而不传递filters参数,正如您在下面的Fiddler截图中所看到的那样

当我单击jqGrid的refresh按钮时,它会调用ListReferents方法,并传递filters参数,如下面的Fiddler截图所示

为此,我在web服务中定义了两个方法,但第一个方法从未被调用,而第二个方法被调用过。

代码语言:javascript
复制
[WebMethod]
public JQGridData ListReferents(string _search, string nd, string rows, string page, string sidx, string sord) {
    return ListReferents(_search, nd, rows, page, sidx, sord, string.Empty);
}

[WebMethod]
public JQGridData ListReferents(string _search, string nd, string rows, string page, string sidx, string sord, string filters) {
    // method code here
}

我哪里做错了?

EN

Stack Overflow用户

回答已采纳

发布于 2011-05-26 15:57:14

问题是应该定义 web服务的所有参数。在对服务器的请求中,只定义了5个标准参数:_searchrowspagesidxsord。因此,您必须在serializeGridData内部测试postData中是否定义了filter属性。如果未定义,则应将其设置为null或空字符串""

代码语言:javascript
复制
serializeGridData: function (postData) {
    if (postData.filters === undefined) postData.filters = null;
    return JSON.stringify(postData);
}

(请参阅here A示例)。它应该能解决你的问题。

此外,您应该删除colModel定义中的翻译逗号(‘]’前的逗号)。

再提一个小建议。您可以简化colModel中的列定义。首先,您可以删除默认的align: 'left', search: true, stype: 'text'属性(请参阅the documentation)。此外,您在大多数列中都有一些公共设置,您可以根据cmTemplate参数重新定义网格的colModel的默认值:

代码语言:javascript
复制
colModel: [
    { name: 'FullName', index: 'FullName', width: 240 },
    { name: 'PhoneNumber', index: 'PhoneNumber', width: 120 },
    { name: 'Email', index: 'Email', width: 180 },
    { name: 'Department', index: 'Department', width: 180 }
],
cmTemplate: { searchoptions: { sopt: ['eq', 'bw', 'bn', 'ew', 'en', 'cn', 'nc']} }

有关列模板here的更多信息,请参阅。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6131113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档