2016-03-24 5 views
0

Ich habe eine Seite, auf der die Dropdown-Box (selUsers) aus einer Datenbank mit Pageload gefüllt wird.Drop-down Ausgewähltes Objekt nicht richtig eingestellt

Am LoadComplete setze ich den Wert basierend auf einem Wert von der Maser-Seite.

selUsers.SelectedValue = master.intUserID 

Dies scheint richtig zu funktionieren, wie der korrekte Text in der Dropdownbox angezeigt wird.

Ich habe eine Schaltfläche, die ein Sub ruft. In diesem Sub, henne ich selUsers.SelectedItem.Value oder selUsers.SelectedValue Ich bekomme den Wert des ersten Elements in der Dropdown-Box nicht die ausgewählte.

Ich habe gelesen, und ich sehe, dass der Code, um den Wert einzustellen, in ispostback sein muss, aber ich posten die Seite nicht zurück, noch will ich. Ist es wirklich so, dass selbst wenn Sie den Wert des Dropdown-Menüs festlegen, es erst dann wirklich eingestellt wird, wenn Sie die Seite zurückgeben? Wenn das nicht der Fall ist, warum bekomme ich nicht den richtigen Wert.

Bevor Sie fragen, habe ich den Code durchforstet, und an keinem anderen Ort wird das Drop-Down Rebound oder der Wert zurückgesetzt.

Antwort

0

der gesamte Lebenszyklus der Seite kann ein bisschen verwirrend sein.

Ich würde Ihnen raten, dieses (Artikel: ASP.NET Seite Lebenszyklus Übersicht) zu lesen https://msdn.microsoft.com/en-us/library/ms178472.aspx

Aber um Ihre Frage zu beantworten:

Wenn Sie auf diese Schaltfläche klicken, geschieht folgendes in dieser spezifischer Auftrag (relevant für Ihr Problem):

1) Das Laden der Seite wird ausgelöst: Hier erhalten Sie Ihre Daten und Datenindikatoren, wodurch auch der ausgewählte Wert in der Dropdown-Liste zurückgesetzt wird.

2) Das Button Click Event wird ausgelöst (dies ist ein Event): Sie lesen den Wert, den Sie auslesen möchten ABER da Sie LoadComplete noch nicht erreicht haben (wo Sie den neuen Wert einstellen)) Sie sehen den ersten Wert in der Liste.

3) Load Complete Event wird ausgelöst: Hier stellen Sie den korrekten ausgewählten Wert ein.

Ja, wenn Sie auf die Schaltfläche eines ASP-Webformulars klicken (standardmäßig), wird ein Postback ausgelöst und der gesamte Seitenlebenszyklus durchlaufen, um die Antwort auf Ihre Aktion zu erstellen. Sie müssen dies beim Erstellen Ihrer Seiten berücksichtigen.

Sie können dies während des Debuggens in Aktion sehen: Setzen Sie Breakpoints auf diese 3 Punkte in Ihrem Code hinter der Datei und klicken Sie dann auf die Schaltfläche.

Um Ihr Problem zu lösen, müssen Sie den ausgewählten Wert festlegen, nachdem Sie Ihre Dropdown-Liste AND verknüpft haben, bevor Sie den ausgewählten Wert auslesen.

Hoffe, das hilft.

Verwandte Themen