我想我明白的ViewState很好,但下面是給我一些麻煩:即使DropDownList中有viestate禁用的SelectedValue還是應該返回一個值
從http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/truly-understanding-viewstate.aspx
回傳控制例如下拉列表和文本框即使在ViewState被禁用時恢復其發佈狀態(所選項目的下拉列表「已發佈」),因爲即使禁用了ViewState,控件仍然能夠發佈其值
假設的DropDownList已的EnableViewState設置爲假,則(根據上面的引用)當用戶通過在DropDownList中選擇項目發出一個回傳,下面的代碼應導致Label1的。文本顯示所選擇的項目(因此DropDownList.SelectedValue應該返回由用戶選擇的值,即使視圖狀態被禁用)的值,而是我得到一個空字符串:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string[] number = {"first","second","third"};
DropDownList1.DataSource = number;
this.DataBind();
}
if (IsPostBack)
{
Label1.Text = DropDownList1.SelectedValue; // displays empty string
// Label1.Text = DropDownList1.SelectedItem.Text; // causes an exception
// Label1.Text = DropDownList1.SelectedIndex.ToString(); // displays empty string
}
}
那篇文章的作者似乎是這方面的專家,所以我假設我做錯了什麼!?!
感謝名單
你看到什麼時候你檢查請求[DropDownList1.ClientID]在回發? – 2009-06-07 21:55:54
回發請求[DropDownList1。ClientID]確實返回選定的值 – SourceC 2009-06-07 22:57:25