Das jqGrid toll ist habe ich ja bereits erwähnt. Nun soll es ja vorkommen, das man nicht immer die gleichen Daten präsentieren will, sondern der User durch Auswahl von bestimmten Suchkriterien Einfluss nimmt. Die Daten die dann typischerweise von einem INPUT-Feld ausgelesen werden, müssen dann mit an das jqGrid-Plugin übergeben werden.
Das ist ganz einfach möglich, indem wir vor dem Request die Daten an das Plugin übergeben:
$(‚#ajax_table‘).jqGrid( {
beforeRequest:function (){
modal_working(’show‘);
// get form-data
var $cfleet = $(‚#cfleet‘).val();
var $doc_edition = $(‚#doc_edition‘).val();
var $doc_sub_edition = $(‚#doc_sub_edition‘).val();
// append data to ajax-url
jQuery.extend(this.postData, {cfleet:$cfleet,doc_edition:$doc_edition,doc_sub_edition:$doc_sub_edition});
},gridComplete: function (){modal_working(‚hide‘)},
[…]
loadui: false,
[…]
Wie wir sehen werden zunächst die gewünschten Werte via $(’selector‘).val(); ausgelesen und in eine Variable gespeichert. Man könnte das natürlich auch direkt in den Aufruf packen. Das eigentliche Anhängen der Daten geschieht mit dem jQuery.extend-Aufruf. Nun werden die Daten aus dem Input gelesen und mit übergeben. Hier muss natürlich ggf. noch entsprechend validiert werden. Die Übergabe erfolgt immer als Wertepaar mit Name:Wert.
Desweiteren habe ich hier noch mein eigenes „Loading-Modal-Window“ mit eingebaut. Durch den jqGrid-Parameter loadui:false wird der Standard ausgeschaltet. Vor dem Request und nachdem das Grid komplett ist wird dieses über die Funktion modal_working(action) ein- bzw. ausgeschaltet.