2 Stimmen

jqGrid-Parameter '_search' wird nicht in URL gesetzt

Ich habe den folgenden Code:

$("#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}]);
});

Wenn ich auf die Schaltfläche mit der ID perform_search ist die resultierende URL unten, und der Wert searchString=hello wird aus einem Textfeld mit der 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

... und was eigentlich passieren sollte, ist, dass die URL-Zeichenfolge _search=true aber wie Sie an der Beispiel-URL sehen können, ist der übergebene Wert _search=false ANMERKUNG : Zeile 5, wo ich den Wert von postdata._search an die Konsole, zeigt die Konsole postdata._search: true wie erwartet, also scheint das wie erwartet zu funktionieren.

Alle anderen Parameter scheinen problemlos zu funktionieren.

UPDATE

Scheint, dass, wenn ich zuerst die eingebaute Suchschaltfläche (das kleine Lupensymbol in jqGrid) verwenden, das ist setzt die "_search=true" Parameter korrekt - und nach, dass meine Schaltfläche funktioniert gut. Nicht sicher, was die Verbindung zwischen den beiden ist, aber im Wesentlichen scheint es, als ob meine param noch ignoriert wird, entweder so oder so. Wenn ich zum Beispiel eine Suche über die Lupe durchführe und mein Javascript so ändere, dass Zeile 5 lautet postdata._search = false es vergeht _search=true (mit anderen Worten, die Zeile 5 scheint völlig ignoriert zu werden).

Ich frage mich, ob ich einfach die falsche Variable auf postdata

3voto

Oleg Punkte 219333

Ich antwortete auf eine bereits geschlossene Frage wie Ihre. Das Problem ist, dass Sie die Einstellung search Parameter auf dem jqGrid selbst, und nicht versuchen, die postData auf diese Weise zu ändern.

Mit anderen Worten, um die _search como true sollten Sie search Parameter von jqGrid auf true und keine Eigenschaften von postData direkt. Ebenso sollten Sie nicht page Parameter von postData . Verwenden Sie stattdessen die rowNum Parameter.

Ihr Code sollte also viel einfacher sein:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X