DropDownList in UpdatePanel

8

Ich habe ein Problem.

In meinem Projekt habe ich eine Dropdownliste in ein updatepanel eingefügt. Was ich tun wollte, ist einen Wert aus der Dropdownliste auszuwählen und in einer Sitzung zu verwenden.

Aber was auch immer ich tue, es wird mir immer einen Nullwert geben, weil ich "AutoPostBack aktivieren" nicht aktiviere. Und wenn ich das tue, wird die Seite aktualisiert, so dass ich das nicht wollte.

Wie kann ich dieses Problem lösen?

irgendwelche Ideen ...

    
iersoy 10.08.2009, 20:10
quelle

4 Antworten

19

Es klingt so, als ob Sie die UpdatePanel-Funktion möglicherweise nicht korrekt verwenden. Wenn UpdatePanel für die Aktualisierung festgelegt ist, wenn Kinder Ereignisse auslösen, sollte nur das UpdatePanel aktualisiert werden, nicht die gesamte Seite. Der folgende Code scheint sich ähnlich zu verhalten, was Sie suchen. Wenn Sie das Dropdown-Menü ändern, wird nur das Update-Fenster an den Server gesendet. Wenn Sie die Seite aktualisieren, können Sie den Wert aus der Sitzung abrufen.

ASPX-CODE

%Vor%

CODE HINTER

%Vor%     
RSolberg 10.08.2009, 20:28
quelle
3

Um alles in Session zu speichern, müssen Sie es an den Server senden.

Vielleicht sind einige weitere Details darüber, warum Sie nicht möchten, dass die UpdatePanel-Aktualisierung hilfreich ist, und was Sie mit dem Wert in Session erreichen möchten.

BEARBEITEN: Aufgrund Ihrer Kommentare scheint es mir die Lösung zu sein, die aktuelle .ascx-Datei in Session zu speichern und Ihre DropDownList so einzustellen, dass Autopostback aktiviert ist.

Speichern Sie bei der Behandlung der Schaltflächen "Weiter" und "Zurück" einen Indikator für die richtige .ascx-Datei in Sitzung.

Während der Postback-Behandlung des Dropdown-Listenereignisses können Sie einfach sicherstellen, dass die aktuelle .ascx-Datei weiterhin angezeigt wird, indem Sie die Sitzung auf die korrekte anzuzeigende Datei überprüfen. Wenn das Ergebnis an den Client zurückgegeben wird, scheint sich nichts geändert zu haben, da das UpdatePanel intelligent genug ist, um zu erkennen, dass es sich um denselben Inhalt handelt, und Sie den Dropdown-Listenwert erfolgreich bearbeitet haben.

    
womp 10.08.2009 20:14
quelle
1

Es hört sich so an, als ob du viel mehr Arbeit machst, als du hier brauchst. Haben Sie sich mit einem ASP.NET Wizard Control befasst? Ссылка oder einfach Google.

Wenn Sie es immer noch so machen möchten, müssen Sie an den Server senden (entweder ohne Autopostback + manuelle Schaltfläche "Senden" oder durch Aktivieren von Autopostback), da die Sitzung ein Server ist. Seitenkonzept. HTTP ist ein zustandsloses Protokoll, daher muss das einzige Konzept des Zustands außerhalb der HTTP-Domäne erfolgen. Das bedeutet, dass Sie den Status auf dem Server (z. B. in der Sitzung) oder sehr viel restriktiver auf dem Computer des Clients speichern (z. B. in einem Cookie).

    
Matt Ball 10.08.2009 20:26
quelle
1

Vielen Dank, dass ich das Problem gelöst habe, indem ich Variablen im Page_Load-Event kontrolliert habe.

%Vor%

danke für alle Antworten

    
iersoy 11.08.2009 05:34
quelle

Tags und Links