Seit der Version 1.1.2 des TD Mobile können Comboboxen nicht mehr nur mit Zeichenketten (Strings), sondern auch mit Werten einer UDV (user defined variable) gefüllt werden. Dies alles hat Gupta recht einfach und intuitiv gelöst, so dass man es auch ohne Studium der Dokumentationen leicht umsetzen kann.
Oft möchte man die Combobox(en) nicht nur mit Wertlisten befüllen, sondern auch einen Eintrag vorauswählen. Dies wird über die Wertbindung (Richtung Set) gesteuert. Man muss also nur eine Bindung vom richtigen UDV-Typ anlegen und diese entsprechend füllen. Das ist jedoch einfacher gesagt als getan, wenn man sich dafür entscheidet diese Vorauswahl auf Clientseite zu treffen. Man kann die Bindung mittels des SET-Befehls mit den gewünschten Werten zwar leicht füllen (siehe Ausschnitt 1).
Ausschnitt 1:
Set: CB_CLIENT_VALUE.nId 3
Set: CB_CLIENT_VALUE.sText "DREI"
Anschließend wird man aber feststellen, dass die Combobox dennoch weiter nur den ersten Listeneintrag anzeigt. Hierfür ist ein kleiner Trick mit Hilfe einer JavaScript-Funktion nötig. Es muss zusätzlich „von Hand“ der gewünschte Wert gesetzt und anschließend die Auswahl aktualisiert werden (siehe Ausschnitt 2).
Ausschnitt 2:
$("#cmbClient").val(value);
$("#cmbClient").selectmenu("refresh");
Dann ist der gewünschte Eintrag auch ganz ohne Serveraufruf vorausgewählt.
PS: Selbstverständlich sollte die Vorauswahl auch ohne den beschriebenen Workaround funktionieren, dieser Fehler wird bei Gupta unter der Nummer TDM-901 geführt und in einer der nächsten Versionen behoben.
Wer das alles einmal im Detail nachvollziehen möchte findet hier ein TD Mobile Beispiel, das sowohl die Vorgehensweise am Server als auch am Client demonstriert. Sollten Sie Fragen hierzu haben kontaktieren sie uns bitte, wir helfen Ihnen gern weiter.