繁体   English   中英

所选项目未更新?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM