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