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 if
Packen. 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