habe mir auch schon gedacht, dass es vielleicht sowas w�re. aber ich f�lle im pageload gar nichts.

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 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


_______________________________________________ Asp.net Mailingliste, Postings senden an: [email protected] An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an