2009-07-30 14 views
1

Wie kann eine Dropdown-Liste ohne Autopostback = True verwenden.ASP.NET VS2008 C# - Dropdown-Liste - Postback

Der Wert auf dem Server wird nicht entsprechend dem auf der Clientseite ausgewählten Wert geändert. Wie ich bereits erwähnt habe, möchte ich nicht, dass für jedes Dropdown das Autopostback einen Post zurück auslösen wird.

Antwort

2

Jedes Mal, wenn ich verloren haben, den Wert der Dropdown-das Auswahlfeld mit Optionen Füllung ist weil ich das Drop-Down-Programm vermasselt habe, bevor ich mit der Wertänderung umgegangen bin. Für mich waren es Drop-Downs, die ich etwas Besonderes machen muss, wie zB Itemattribute für Javascript hinzufügen usw. Das sind Daten, die bei jedem Laden der Seite hinzugefügt werden müssen (auch Daten, die nicht im Drop-Down-Menü gespeichert sind) die Namen und Werte jedes Artikels). In diesen Fällen habe ich diese Arbeit am Laden gemacht, dann versuche ich, den Wert später im Seitenlebenszyklus und DOH zu erhalten! Hier

ist die Seite Lebenszyklus:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

Dollar Donuts, das ist, was geschieht. Wahrscheinlich werden Sie die Elemente nur neu laden, bevor Sie mit dem Postback-Ereignis arbeiten, das Sie zum Abrufen des Werts verwenden. Wenn Sie dies tun und diesen Arbeitsablauf nicht umgehen können, speichern Sie den ausgewählten Index am Anfang der Logik, die das Dropdown-Menü auffüllt, und legen Sie den ausgewählten Index des Dropdown-Menüs mit diesem Wert fest, wenn Sie fertig sind.

2

Es wird in der Viewstate gespeichert, so dass der Wert korrekt sein wird, wenn Sie schließlich Post, und wenn Sie wirklich verzweifelt sind, den aktuellen Wert ohne Postback zu bekommen, wäre Javascript die Möglichkeit, dies zu tun .

+0

Haben Sie ein Beispiel bekommen, wie ich dies mit Javascript umsetzen kann? –

+0

http://blog.techsaints.com/2007/05/06/javascript-how-to-get-selected-item-in-dropdown-select-list/ ist ein gutes Beispiel, ich würde nur den Code aber posten das ist Betrug =] –

0

Sie sollten Sie nur sicherstellen, dass sich während der ersten Seite zu laden, und nicht wieder in der Postbacks

if (!this.Page.IsPostBack) { 
    //fill select box here 
} 
1

Schlimmster Fall, dass Sie den Wert direkt aus dem Request-Objekt greifen können:

string selectedID = Request[DropdownControl.UniqueID];