【问题标题】:jqGrid '_search' parameter not being set in URLjqGrid '_search' 参数未在 URL 中设置
【发布时间】:2011-06-22 14:59:08
【问题描述】:

我有以下代码:

$("#perform_search").click(function() {    
  var postdata = $("#translationsList").jqGrid('getGridParam','postData');
  postdata._search = true;
  postdata.searchString = $("#auto_complete_search").val();
  console.log('postdata._search: ' + postdata._search);
  jQuery("#translationsList").trigger("reloadGrid", [{page:1}]);
});

当我单击 ID 为 perform_search 的按钮时,生成的 URL 如下,并且值 searchString=hello 是从 ID 为 auto_complete_search 的文本字段中提取的:

[domainname]/translations_feed.php?language_cd=EN&_search=false&nd=1308754288459&rows=20&page=1&sidx=phrase&sord=asc&searchString=hello

...应该发生的是 URL 字符串有 _search=true,但从示例 URL 中可以看出,传递的值是 _search=false 注意:第 5 行,我将postdata._search 的值输出到控制台,控制台按预期显示postdata._search: true,因此它似乎按预期工作。

似乎所有其他参数都通过就好了。

更新

似乎,如果我第一次使用内置搜索按钮(jqGrid 中的小放大镜图标),即正确设置“_search=true”参数 - 之后我的按钮工作正常。不确定这两者之间的联系是什么,但基本上我的参数似乎仍然被忽略。例如,如果我通过放大镜进行搜索,并更改我的 javascript 以使第 5 行读取 postdata._search = false 它通过_search=true(换句话说,第 5 行似乎被完全忽略了)。

想知道我是否只是在 postdata 上设置了错误的变量

【问题讨论】:

    标签: jquery-plugins jqgrid url-parameters


    【解决方案1】:

    我已经回答了一个closed question,就像你的一样。问题是您应该在 jqGrid 本身上设置 search 参数,而不是尝试以这种方式更改 postData。

    也就是说,要将_search设置为true,你应该将jqGrid的search参数设置为true,而不是直接设置postData的任何属性。同样,您不应设置postDatapage 参数。而是使用rowNum 参数。

    所以,你的代码应该更简单:

    $("#perform_search").click(function() {    
      $("#translationsList").jqGrid('setGridParam', { search: true, postData: { searchString:$("#auto_complete_search").val() } });
      jQuery("#translationsList").trigger("reloadGrid", [{page:1}]);
    });
    

    【讨论】:

    • 啊,谢谢。这个答案的组合,并参考你对另一个问题的答案,为我解决了这个问题。我已对您的答案添加了一个编辑,其中包括最终代码和一些说明。
    • 我会自己发布编辑,但我还没有编辑权限。
    猜你喜欢
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多