Dropdown-Liste, wie der ausgewählte Wert in ViewState gespeichert wird?Dropdown-Liste, wie der ausgewählte Wert in ViewState gespeichert wird?
Ich habe eine Dropdown-Liste, die bei der Änderung den neuen Wert in eine ViewState-Variable speichert, so dass nach einem Postback die Dropdown-Liste seinen ausgewählten Wert von ViewState abrufen wird, wenn zuvor festgelegt.
Aber ich kann den ausgewählten Wert nicht in DropDownList1_SelectedIndexChanged zu ViewState speichern, weil beim Laden der Seite (nach Update-Datenbank mit SQL-Abfrage-Update) in DropDownList ich keinen ausgewählten Wert haben.
Können Sie mir bitte helfen, das Problem zu lösen?
Vielen Dank im Voraus.
Mein Code unten.
<asp:DropDownList ID="ddl1" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="ddl1_SelectedIndexChanged"
EnableViewState="true" ViewStateMode="Enabled">
<asp:ListItem Value="" Text="[Selected]"></asp:ListItem>
<asp:ListItem Value="" Text="------"></asp:ListItem>
<asp:ListItem Value="1" Text="A"> </asp:ListItem>
<asp:ListItem Value="2" Text="B"> </asp:ListItem>
<asp:ListItem Value="3" Text="C"> </asp:ListItem>
<asp:ListItem Value="4" Text="D"> </asp:ListItem>
<asp:ListItem Value="" Text="------"></asp:ListItem>
</asp:DropDownList>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindData();
if (ViewState["List1_Value"] != null)
{
ddl1.SelectedValue = ViewState["List1_Value"].ToString();
}
}
}
protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
BindData();
ViewState["List1_Value"] = ddl1.SelectedValue.ToString();
}
private void SqlUpdate()
{
sql = String.Format(@" UPDATE ..... ";
using (OdbcConnection cn =
new OdbcConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString))
{
using (OdbcCommand cmd = new OdbcCommand(sql, cn))
{
cmd.Connection.Open();
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg", "alert('Ok.');window.location='default.aspx';", true);
}
}
}
Hallo, für die Antwort dich so sehr danken. Ich habe den Code mit Ihrem Vorschlag geändert, aber ich habe keine Änderungen, nach dem Update in DropDownList habe ich keinen ausgewählten Wert. –
@AntonioMailtraq - Ich habe meine Antwort aktualisiert. Sie müssen auch den Code verschieben, dem Sie den ausgewählten Wert zuweisen (in PageLoad), sodass er außerhalb der! Page.IsPostBack-Bedingung liegt. –