habe eine hauptseite: default.aspx
in dieser habe ich einen placeholder, in den ich entsprechende controls lade.
wird z.b. das control geladen, um das es sich gerade handelt, wird folgender code ausgef�hrt:
Case "SucheKFZ"
AddHandler CType(holderControl, SucheKFZ).NewControl, AddressOf Me.changeControlHandle
CType(holderControl, SucheKFZ).fillddlStandards()
CType(holderControl, SucheKFZ).fillddlMarke("fahrzeugart='Neufahrzeug'")
wie du siehst, werden hier die ddls gef�llt - zum ersten mal.
in meinem control SucheKFZ.ascx habe ich im pageload nichts drin, was die ddls betrifft.
im codebehind der SucheKFT.ascx habe ich dann die strukur, wie in meiner ersten mail beschrieben:
die ddls rufen die funktionen auf, die ich ihnen mit OnSelectedIndexChanged zugewiesen habe.
der inhalt der ddls bleibt ja auch erhalten. er vergr��tert sich weder (z.b. daten doppelt oder so), noch schrumpft er. nur eben bei der zweiten ddl wird sich der selektierte wert nicht gemerkt . . .
:-/
----- Original Message ----- From: "Michael Reichstein" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, December 28, 2004 7:53 PM
Subject: AW: [Asp.net] DropDownList Problem
Hi Tom!
H�rt sich an, als ob deine Seite beim Postback Ihren Status verliert. Hast du das mal �berpr�ft?
Und wo f�gst du die Items hinzu? Im Page.Load? Dann musst du um die herum unbedingt ein
if not page.ispostback then
ddlMarke.Items.Add("-- Hersteller w�hlen --")
ddlModell.Items.Add("-- Modell w�hlen --")
ddlTyp.Items.Add("-- Typ w�hlen --")
End ifPacken. Sonst l�st du bei jedem Postback einen neuen Fill der DDLs aus.
Gruss Michael
Hi Liste -
also ich habe drei DDLs wie folgt:
<asp:DropDownList id="ddlMarke" AutoPostBack="True" OnSelectedIndexChanged="fillddlModell" runat="server"></asp:DropDownList>
<asp:DropDownList id="ddlModell" AutoPostBack="True" OnSelectedIndexChanged="fillddlTyp" runat="server"></asp:DropDownList>
<asp:DropDownList id="ddlTyp" runat="server"></asp:DropDownList>
alle ddls bekommen einen startwert: ddlMarke.Items.Add("-- Hersteller w�hlen --") ddlModell.Items.Add("-- Modell w�hlen --") ddlTyp.Items.Add("-- Typ w�hlen --")
die ddlMarke wird mit Daten aus einer DataTable gef�llt, sobald das Control aufgerufen wird.
w�hlt ma nun eine Marke aus, wird die funktion filldllModell aufgerufen, die mir die zu der Marke geh�rigen Modelle in die ddl f�llt.
das funktioniert auch wunderbar. code hierf�r: 'Funktion, die dem ddlMarke die Hersteller zuordnet Sub filldllMarke(filterExp As String) Dim sortExp As String = "hersteller ASC" Dim neuerEintrag As String = "" Dim drArray As DataRow() drArray = CType(HttpContext.Current.Cache("fahrzeuge"),DataTable). _
Select(filterExp,sortExp,DataViewRowState.CurrentRows)
Dim i As Integer
for i=0 to drArray.length-1 if NOT drArray(i)("hersteller").ToString() = neuerEintrag Then
ddlMarke.Items.Add(drArray(i)("hersteller").ToString()) neuerEintrag = drArray(i)("hersteller").ToString() End If next End Sub
nun soll das spiel ja weitergehen. wenn ich nun ein modell ausw�hle, soll die ddl mit den dazugeh�rigen typen gef�llt werden, was die funktion filldllTyp bewerkstelligen soll, die eigentlich im grunde genauso aussieht, wie die fillddlModell:
'Funktion, die dem ddlTyp die Fahrzeug-Typen zuordnet Sub fillddlTyp(sender As Object, e As System.EventArgs) Dim filterExp As String = "fahrzeugart='"& fahrzeugart _ & "' AND hersteller='" & ddlMarke.SelectedItem.Text.toString.Trim() & "' AND modell='" _ & ddlModell.SelectedItem.Text.toString.Trim() & "'"
lbTest.Text = filterExp
Dim sortExp As String = "typ ASC" Dim neuerEintrag As String = "" Dim drArray As DataRow() drArray = CType(HttpContext.Current.Cache("fahrzeuge"),DataTable). _
Select(filterExp,sortExp,DataViewRowState.CurrentRows)
Dim i As Integer
for i=0 to drArray.length-1 if NOT drArray(i)("typ").ToString() = neuerEintrag Then ddlTyp.Items.Add(drArray(i)("typ").ToString()) neuerEintrag = drArray(i)("typ").ToString() End If next End Sub
nur hier funktioniert es irgendwie nicht.
ich habe in meiner modell-ddl mehrere modelle. wenn ich eines ausw�hle, macht er auch einen postback nur:
a) bleibt er nicht auf dem selektierten modell, sondern springt immer auf "-- Modell w�hlen --" b) was wohl damit zusammenh�ngt, wenn ich das aktuell ausgew�hlte modell mit ddlModell.SelectedItem.Text.toString.Trim() abfrage, bekomme ich immer den string "-- Modell w�hlen --" zur�ck, obwohl ich ja was anderes angew�hlt habe.
wie kann den sowas passieren ? ? ?
habe keinen plan, was ich da falsch mache. bitte helft mir runter vom schlauch. :-/
tom
_______________________________________________ Asp.net Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/asp.net
_______________________________________________ Asp.net Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/asp.net
_______________________________________________ Asp.net Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/asp.net
