我想在页面重新加载后保留所选项目:
摘录自.aspx:
<asp:DropDownList ID="MyDropDown" runat="server" AutoPostBack="true"
onselectedindexchanged="MyDropDown_SelectedIndexChanged">
</asp:DropDownList>
从page_load <。p>中的.cs开始
if (!IsPostBack)
{
PopulateDropDownList();
}
与
private void PopulateDropDownList()
{
MyDropDown.Items.Add("1");
MyDropDown.Items.Add("2");
}
protected void MyDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl);
}
答案 0 :(得分:1)
Response.Redirect刷新页面,您将松开将具有所选索引的视图状态。您可以在重定向之前将所选索引置于会话中。
protected void MyDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
Session["MyDropDownSelectedIndex"] = MyDropDown.SelectedIndex.ToString();
Response.Redirect(Request.RawUrl);
}
答案 1 :(得分:1)
您需要填充Page init事件中的下拉列表。如果在页面加载事件期间执行此操作,则无法正确恢复视图状态(因为在页面加载事件之前未填充下拉列表),因此无法触发on selected selected index事件。
编辑:您可能希望缓存填充下拉列表的数据,以便保存一些数据库。我认为您也不需要在选定的索引更改事件中重定向。