jqGrid不会将搜索参数添加到url

时间:2011-01-30 14:10:52

标签: jquery jqgrid

我正在尝试使用filterToolbar搜索选项。 遗憾的是,带参数的搜索字符串未添加到网址中。 在调试中我看到这一行被执行:

590 if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); }

sd在我的情况下是正确的。

我看到需要发送到服务器的值存储在名为sdata的变量中,该变量未发送。我还看到postData过滤器中包含正确的数据,但未发送。

我还注意到$t.p.searchurl未定义。

这是我的jqGrid init(抱歉这个烂摊子):

grid_options = {
                altclass: "grid-altrow",
                altRows: true,
                autowidth: true,
                beforeSelectRow: edit,
                datastr: datastr,
                datatype: datatype,
                height: "100%",
                hidegrid: false,                
                multiselect: true,
                multiselectWidth: 45,
                onPaging: do_page,
                onSortCol: sort,
                pager: "#pager",
                rowNum: ROW_NUM,
                sortname: "zone",
                url: url.toString(),
                gridComplete: grid_complete,
                jsonReader: {
                    page: page,
                    records: records,
                    repeatitems: false,
                    root: root,
                    total: total
                },
                prmNames: {
                    addoper: null,
                    deloper: null,
                    editoper: null,
                    id: null,
                    nd: null,
                    npage: null,
                    oper: null,
                    order: null,
                    page: null,
                    rows: null,
                    search: null,
                    sort: null,
                    subgridid: null,
                    totalrows: null
                },
                colNames: [
                    "Entry Id",
                    "Zone",
                    "IP Address",
                    "Netmask",
                    "Description"
                ],
                colModel: [
                    {
                        hidden: true,
                        index: "id",
                        name: "id"
                    },
                    {
                        editable: true,
                        editoptions: {
                            value: zone_map
                        },
                        edittype: "select",
                        index: "zone",
                        name: "zone"
                    },
                    {
                        editable: true,
                        editrules: {
                            required: true
                        },
                        index: "ip",
                        name: "ip"
                    },
                    {
                        editable: true,
                        editoptions: {value: netmask_edit_options_value},
                        edittype: "select",
                        index: "netmask",
                        name: "netmask",                        
                        stype: "select"
                    },
                    {
                        editable: true,
                        edittype: "custom",
                        index: "comment",
                        name: "comment"
                    }
                ]
            };
            grid.jqGrid(grid_options);              
            grid.jqGrid("filterToolbar", {
                searchOnEnter : false,
                stringResult: true,
                beforeSearch: function(e) {
                    debugger;
                }
            });

请帮忙吗?

1 个答案:

答案 0 :(得分:2)

最后,我们使用postData回发serializeGridData手动序列化的解决方案(从选项中删除stringResult: true后)。

我不是百分之百满意,因为我们仍然不知道为什么这不应该发生在开箱即用,并且怀疑在配置中仍然没有100%正确。

所以我不接受这个答案,也许有人会做得更好:)。

修改:接受此操作,因为找不到其他解决方案。