2010-12-21 18 views
0

Ich stoße auf ein kleines Problem mit etwas ASP.Net Code, an dem ich arbeite. Der Einfachheit halber lasse ich sagen, dass ich zwei Dropdown-Listen habe, eine, die voll von verschiedenen Gegenständen ist, und eine andere, die voll von anderen Gegenständen ist, aber basierend auf dem ausgewählten Gegenstand der ersten Dropdown-Liste. Ich setze derzeit Variablen in versteckte Eingaben, um zu prüfen, ob sich das Element in der ersten Dropdownliste geändert hat und ob es die zweite Dropdownliste ändern muss, aber ich muss auch überprüfen, ob etwas anderes ein Postback auf NOT verursacht Füllen Sie die zweite Dropdown-Liste erneut auf, um nicht zu verlieren, was der Benutzer gerade ausgewählt hat. Diese Überprüfung ermöglicht es mir auch sicherzustellen, dass, wenn ich von der Seite weg navigiere, die richtigen Werte ausgewählt werden und nicht etwas durch eine Postback-Repopulation ersetzt wird.Richtige Methode zum Auffüllen der Dropdownliste basierend auf einem anderen Wert?

Ich bin neu in ASP.Net/HTML/CSS/Javascript und dergleichen. Ich weiß, während ich arbeite, ist es nicht annähernd der richtige Weg, Dinge zu tun. Bitte helfen Sie mir, meine Wege zu korrigieren und den besten Weg zu finden, dieses aktuelle Problem zu lösen. Einige gute ASP.Net Tutorial Webseiten wären auch nett, da ich meine Fähigkeiten damit verbessern muss.

+0

Verwenden Sie die .net-Ereignisse, um dies zu tun? In welcher Größenordnung implementieren Sie diese Site? –

+0

Ich habe das erste ddl in das Page.Load-Ereignis geladen, warte aber, bis Page.PreRender das zweite ddl füllt. Nicht unbedingt das Beste (daher meine Frage), aber ich bin gerade erst dabei, anstatt im Erdgeschoss zu sein. Keine Ahnung, was du mit Skala meinst, aber es wird nicht viele Treffer pro Tag geben, vielleicht 500. – Crag

Antwort

1

Versuchen Autopostback wahr haben wollen, mit der ausgewählte Index geändert Veranstaltung:

<asp:DropDownList ID="DropDownList1" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" runat="server" /> 
<asp:DropDownList ID="DropDownList2" runat="server" /> 

Und das Ereignis die zweite Drop-Down-bevölkern haben:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
} 

EDIT Nun, wenn Sie es brauchen von der ersten Seite zu laden, füllen Sie das folgende tun könnte, oder besser noch ein Verfahren machen Das wird sowohl von der Seitenladung als auch vom ausgewählten Index aufgerufen, der das Dropdown-Menü füllt.

if (!Page.IsPostBack) 
{ 
    DropDownList1_SelectedIndexChanged(DropDownList1, EventArgs.Empty); 
} 
+0

Das scheint so zu funktionieren, außer dass es nicht aufgerufen wird, wenn die Seite für die geladen wird erstes Mal. Aber ich wette, mit ein wenig Herumalbern und Auschecken der MSDN-Seiten @astander vorausgesetzt, dies wird meine Lösung sein. – Crag

+0

aktualisierte Antwort, um eine Lösung dafür zu empfehlen. – CRice

Verwandte Themen