Wie kann ich die Erhaltung der Suchfilter in jqGrid auf Seite neu laden?
Fand ich viele Gespräche in der Nähe, was ich brauche, und diese Frage ist die
am nächsten - Wie kann ich einstellen, postData._search auf true in der Anfrage in jqGrid?.
Als ich zu kämpfen mit fast dem gleichen problem und bekomme einfach nicht das es funktioniert - ich will-setup "Suche" und "Filter" während des erstmaligen Ladens des jqGrid - sagen wir, auf der Seite laden, und ich habe meine Filter in der session gespeichert - und ich habe alles versucht, ich fand in Oleg ' s Beispiele - es funktioniert einfach nicht!
Das ist, was ich versuche zu tun -
loadBeforeSend: function (xhr) {
var grid = jQuery('#' + block_id);
var postData = grid.jqGrid('getGridParam','postData');
jQuery.extend(postData,{filters:MyFilters});
grid.jqGrid('setGridParam', {search: true, postData: postData});
console.log(grid.jqGrid('getGridParam','postData'));
}
Die Konsole Ausdruck zeigt, dass die Filter an Ihrem Platz sind, aber die _search ist immer noch falsch, und die eigentliche Post geschickt bekommt auch ohne Filter:
_search false
block_id report_block_1table
nd 1297451574526
page 1
rows 25
sidx id
sord desc
Allerdings, wenn ich genau den gleichen code - mit dem Zusatz von
grid.trigger("reloadGrid");
line - in manchen Schaltfläche onClickButton Funktion, und später auf die Taste klicken, - alles funktioniert; aber ich brauche, um es auf den "Seite neu laden"!
Irgendwelche Ideen? Es ist driving me crazy...
InformationsquelleAutor Oleg Ivanov | 2011-02-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es mir, dass Sie nicht die erste person, die die gleiche Frage zu stellen. Kürzlich fragte ich auf die enge Frage (Lesen, viele Kommentare zu beantworten). Ein weiterer alte Antwort einschließlich die demo könnte wohl die Antwort auf einige Ihrer geöffneten Fragen.
Ihren code mithilfe
beforeRequest
arbeiten nicht nur, weil die FunktionbeforeRequest
werden caled unmittelbar vor dem ajax-call und die änderung dersearch
parameter ist zu spät. Außerdem overwiting vonfilters
everytime, das ist wahrscheinlich nicht die beste Idee. In dem Fall wird der Benutzer nicht in der Lage, alle anderen grid-filter.Also ich kann wiederholen, dass die Verwirklichung der Lösung, die Sie brauchen, ist sehr einfach. Sollten Sie nur setzen
filters
Eigenschaft despostData
parameter von jqGrid der filter, die Sie brauchen, und legen Sie eine andere jqGrid-parametersearch:true
zusätzlich. Es ist alles! Später wird der Benutzer in der Lage sein, sich zu öffnen Voraus suchen-dialog, und überschreiben Sie die Filter. Die Benutzer können auch auf "Zurücksetzen" - button des advance die Suche Dialogfeld und legen Siefilters
auf eine leere Zeichenfolge undsearch:false
.Zum besseren Verständnis habe ich zu deutlich, wie
search
parameter oder einige andere jqGrid wird in der URL verwendet. Es gibt parameter prmNames von jqGrid definiert die Namen der Parameter senden als Teil des URL oder als einen Teil der Daten an den server gesendet. Der Standardwert von prmNames enthaltensearch:"_search"
und den code der internen füllen Funktion verwendet, die von jqGrid hat die folgenden vereinfachten code-fragment:wo
So einstellen
_search
parameter der URL sollte mansearch
parameter von jqGrid.Blick auf die folgende demo. Sie können leicht überprüfen, mit Fiddler von Firebug, dass das jqGrid von der Seite senden von HTTP GET mit folgenden url:
Also genau das tun, was Sie brauchen. Der code der demo enthalten, das folgende code-fragment:
[rennt die Zeit auf die Bearbeitung der vorherigen Anmerkung] - wenn ich meine Suche/filter params in der grid-init Argumente, es völlig aus, es funktionieren alle. Danke, ich wirklich zu schätzen Ihre Hilfe!
Iwanow: Sie sind herzlich willkommen!
InformationsquelleAutor Oleg
@Oleg Oleg ' s Antwort, funktioniert wie ein Charme, aber nur für die erste Zeit.
Ist für mich, wenn ich ein reload der Netz -, Filter-und such-flag nicht gesetzt.
Mit dem folgenden code jedes mal, wenn ich neu laden der raster-es sendet auch die Filter-und such-flag.
Ich benutze server-Seite Sortierung und Paginierung.
Ich bin mit:
Auf dem grid definition:
InformationsquelleAutor Pedro Robles