Laden...

JQuery DropDown wird nach Klick auf Grid-Zeile nicht aktualisiert

Erstellt von BK01 vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.168 Views
B
BK01 Themenstarter:in
203 Beiträge seit 2005
vor 7 Jahren
JQuery DropDown wird nach Klick auf Grid-Zeile nicht aktualisiert

Hallo zusammen,

ich versuche es mal so detailiert wie möglich zu beschreiben.

Ich habe ein GridView und in diesem Grid werden Daten angezeigt. Beim Seitenaufbau PageLoad und Init werden schon im Hintergrund TextBoxen und eine DropDownListe gebunden, welche allerdings nicht angezeigt werden. (Diese werden für Edit bzw. New benötigt)

Wenn ich auf eine Zeile im Grid klicke, dann wird ein onClick-Event="FunctionXY(this)" ausgeführt.

In der FunctionXY(tget) wird dann u.a. dieser Code ausgeführt:


$("[id*=pnlHidnFlds] >:nth-child(1) option[value='" + $("#" + target.attr("ID") + " td:nth-child(" + x + ")").attr("val") + "']").prop('selected', true);

und


$("[id*=pnlHidnFlds] >:nth-child(1)").trigger('chosen:updated');

Nachdem Funktionscall haben die Textfelder die Inhalte der Spalten des Grids, aber die DropDown Box hat immer den ersten Value, welcher sich in der DropDownBox befindet.

Ein Speichern zeigt allerdings, dass der Value im Hintergrund richtig sein muss, da trotz falscher Anzeige der richtige Wert gespeichert wird.

Also Beispiel:
Wert A, B und C stehen in der DropDown

Ich klicke im Grid auf eine Zeile mit C und in der DropDown wird A angezeigt. Klick auf Speichern = C

Beispiel 2:
Ich klicke im Grid auf eine Zeile mit C und in der DropDown wird A angezeigt. Bei click auf Cancel Button onclick= return document.location.reload(); Klick auf neue Grid Zeile mit Wert B und beim Laden steht wieder A drin.

Das ist alles Verhalten des IE.

Im FireFox ist das Verhalten (Beispiel2) leicht anders:
Klick im Grid auf eine Zeile mit B und es wird A angezeigt.
Bei click auf Cancel Button onclick= return document.location.reload();

Wird Seite refresht?! -> Klick auf neue Grid Zeile mit Wert C und beim Laden steht plötzlich Wert C drin. (Also der Wert der eigentlich beim ersten Aufruf hätte drin stehen müssen.)

Ich verstehe zum einen das unterschiedliche Verhalten nicht und zum anderen verstehe ich nicht, warum der Wert nciht korrekt dargestellt wird.

Hat jemand eine Idee woran es liegen könnte? (Mir würde es schon reichen, wenn es in einem Browser funktioniert.)

Vielen Dank
BK

5.658 Beiträge seit 2006
vor 7 Jahren

Hi BK01,

wenn ich deinen langen Text und den Quelltext richtig verstehe, dann ist das Problem, daß du mit jQuery keinen Eintrag in einer ComboBox selektieren kannst.

Mit dem Grid hat das Problem doch eigentlich nichts zu tun, oder?

Jedenfalls sieht der Code für mich nicht aus, als könntest du ihn in ein paar Monaten noch nachvollziehen. Und ausprobieren kann man dein Problem so leider auch nicht.

Hast du also mal testweise probiert, die Selektion auf einer Seite ohne Grid zu testen? Hast du schon den Debugger verwendet, um das Problem nachzuvollziehen?

Letztendlich gibt es folgende Möglichkeiten, denen du nachgehen müßtest:

  • Der Code funktioniert so nicht
  • Der Code wird nicht (an der richtigen Stelle) aufgerufen
  • Ein anderer Script auf der Seite macht die Auswirkungen des Codes wieder rückgängig

Weeks of programming can save you hours of planning