[英]Selected Item not being updated?
我有以下DropDownList控件:
<asp:DropDownList ID="SubjectFilter" runat="server" AutoPostBack="True" onselectedindexchanged="SubjectFilter_SelectedIndexChanged"></asp:DropDownList>
SubjectFilter
数据:
BookStore b = new BookStore();
b.LoadFromXML(Server.MapPath("list.xml"));
SubjectFilter.DataSource = b.BooksList.Select(x => x.Subject).Distinct().ToArray();
SubjectFilter.DataBind();
SubjectFilter.Items.Insert(0, new ListItem("הכל", "Default"));
一切都很好。 但是,在SubjectFilter_SelectedIndexChanged
方法中,即使我选择其他选项, SubjectFilter.SelectedValue
始终为Default
。
问题是什么? 非常感谢你。
我猜上面的代码是从PageLoad
事件。 您可能需要将其包装在if(!isPostBack)
块中。
确保在Page_Load
,仅当IsPostBack
为false时才填充下拉列表。
例如
public void Page_Load(...)
{
if (!IsPostback())
UpdateDisplay();
}
您何时绑定下拉列表? 您可以将任何包装在If(page.ispostback == false)中。在您检查其值之前,似乎在页面加载时就进行了绑定。
ViewState在ASP.NET页的“初始化”和“加载”之间分配。 您的事件处理程序在加载后发生。 如果要通过编程方式在用户将使用的控件中设置内容,则需要在应用ViewState 之前进行处理。 换句话说,将其移动到Page_Init。 之后,将启动ViewState,您将看到执行处理程序时用户实际选择的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.