Hallo Zusammen
ich sitze immer noch an meinen Prüfungsprojekt. Nun habe ich ein Problem mit den Dropdownlisten. Ich möchte die Stellung der Dropdownlisten über den Index in eine Sessionvariable speichern. Ich habe 2 Dropdownlisten beide sind mit Databound
an eine Tabelle der datenbank gebunden.
Hier die Xaml:
<p>
<asp:DropDownList ID="ddl_1" runat="server" DataSourceID="SqlDataSource_DDL2"
DataTextField="Gebaeude" DataValueField="GebID" AutoPostBack="True">
</asp:DropDownList>
<asp:DropDownList ID="ddl_2" runat="server" DataSourceID="SqlDataSource_DDL1"
DataTextField="Raum" DataValueField="RaumID" AutoPostBack="True">
</asp:DropDownList>
</p>
<p>
<asp:SqlDataSource ID="SqlDataSource_DDL1" runat="server"
ConnectionString="<%$ ConnectionStrings:RE_AntraegeConnectionString %>"
SelectCommand="SELECT [RaumID], [Raum], [GebID] FROM [Test_Raum] WHERE ([GebID] = @GebID)">
<SelectParameters>
<asp:ControlParameter ControlID="ddl_1" DefaultValue="Unbekannt" Name="GebID"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
Die Abfrage der Sessiondaten mache ich im PageLoad Ereignis:
if (!Page.IsPostBack)
{
ddl_1.SelectedIndex = Convert.ToInt16(gebaeude);
lb_1.Text = gebaeude;
raum = (String)Session["Raum"];
ddl_2.SelectedIndex = Convert.ToInt16(raum);
lb_2.Text = raum;
Session.Add("Gebaeude", gebaeude);
Session.Add("Raum", raum);
}
Das abspeichern der Session mache ich beim Click Ereignis des weiter Buttons:
gebaeude = Convert.ToString(ddl_1.SelectedIndex);
Session["Gebaeude"] = gebaeude;
raum = Convert.ToString(ddl_2.SelectedIndex);
Session["Raum"] = raum;
Response.Redirect("About.aspx");
Nun mein Problem beim wiederaufruf der Seite:
Die Dropdownliste die nicht über eine Where klausel gebunden ist zeigt den richtigen ausgewählten Eintrag an, die über die Where klausel gebunden ist zeigt den nicht den ausgewählten sonder den ersten ersten Eintrag an. Die Sessionvariablen
haben aber den gespeicherten Index das habe ich mir mit Labels anzeigen lassen.
Wie kann man das Problem beseitigen.
Vielen Dank schonmal im vorraus
Martin Kühn