2013-03-16 7 views
6

Ich benutze jqgrid und ich habe eine Filterzeile mit Dropdown-Listen, damit die Leute aus einer Liste von Elementen wählen können. Ich dachte, dass es viele Zyklen verschwenden würde, um das gesamte Drop-down zu laden, da die Leute vielleicht keine davon auswählen würden.In jquery jqgrid, Gibt es eine Drop-down-Funktion, die bis zur Auswahl verzögert ist?

Gibt es trotzdem einen Ajax-Aufruf, um das Dropdown zu erhalten, bis eine Person tatsächlich auf den Pfeil im Dropdown-Filter klickt. Ich sehe, dass einige andere Rasterbibliotheken dies tun.

Antwort

3

Check this out:

Markup:

<select id="ddl"> 
    <option value="-1">Select One</option> 
</select> 

jQuery:

$("body").delegate("#ddl", "focus",function(event){ 
    //ajax call here, and then append items 
    $(this).append("<option value='1'>Option 1</option>"); 
    $(this).append("<option value='2'>Option 2</option>"); 
    $(this).append("<option value='3'>Option 3</option>"); 
    $(this).append("<option value='4'>Option 4</option>"); 
    $(this).append("<option value='5'>Option 5</option>"); 
}); 

jsFiddle: http://jsfiddle.net/9asfG/

+0

aber ich muss auf den Server gehen, um die Liste zu bekommen – leora

1

Ich denke, Sie können es auf der Server-Seite auch tun, in dem Code können Sie eine if-Anweisung innerhalb der $ _POST ["_ Suche" zu überprüfen, wenn dies wahr ist, dann innerhalb $ _POST Schleife finden, ob das Dropdown-Menü -search Bedingung post, wenn nein, echo etwas leer oder was auch immer, um den Code zu stoppen, wenn ja dann weiterhin Daten von DB laden.

PS .: Meine persönliche Meinung, vielleicht ist es keine gute Idee, das Ergebnis zu "verzögern", weil der Benutzer vielleicht nicht weiß, dass er das Dropdown zuerst auswählen muss, es ist kein gutes Design aus Sicht der Benutzererfahrung .

Verwandte Themen