2

私は次のコードを持っています:

$("#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」パラメーターが正しく設定され、その後はボタンが正常に機能するようです。2つの間の接続が何であるかはわかりませんが、基本的には、私のパラメータがどちらの方法でも無視されているように見えます。たとえば、虫眼鏡で検索し、JavaScriptを変更してLINE 5postdata._search = falseがそれを読み取るようにすると_search=true(つまり、LINE 5は完全に無視されているように見えます)。

単に間違った変数を設定しているのではないかと思いますpostdata

4

1 に答える 1

3

私はあなたのようなすでに閉じられた質問に答えました。問題は、jqGrid自体にパラメーターを設定する必要がありsearch、この方法でpostDataを変更しようとしないことです。

つまり、jqGridのパラメータをに設定_searchするtrue必要があり、のプロパティを直接設定しないように設定します。同様に、のパラメータを設定しないでください。代わりに、パラメーターを使用してください。searchtruepostDatapagepostDatarowNum

したがって、コードははるかに単純である必要があります。

$("#perform_search").click(function() {    
  $("#translationsList").jqGrid('setGridParam', { search: true, postData: { searchString:$("#auto_complete_search").val() } });
  jQuery("#translationsList").trigger("reloadGrid", [{page:1}]);
});
于 2011-06-22T15:45:55.347 に答える