Tôi nghĩ rằng tôi hiểu ViewState khá tốt, nhưng sau đây là đem lại cho tôi một số khó khăn:Thậm chí nếu DropDownList có viestate khuyết tật của nó, SelectedValue vẫn phải trả lại một giá trị
Từ http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/truly-understanding-viewstate.aspx
điều khiển Postback chẳng hạn như danh sách thả xuống và hộp văn bản phục hồi trạng thái đã đăng của họ (mục được chọn của một dropdown ist 'posted') ngay cả khi ViewState bị vô hiệu hóa, bởi vì ngay cả với ViewState đã tắt, điều khiển vẫn có thể đăng giá trị của nó
Giả sử DropDownList đã EnableViewState thiết lập để sai, sau đó (theo trích dẫn ở trên) khi người dùng đưa ra một postback bằng cách chọn một mục trong DropDownList, đoạn code sau nên kết quả trong Label1 .Text hiển thị giá trị của một mục đã chọn (do đó DropDownList.SelectedValue phải trả lại giá trị được người dùng chọn, ngay cả khi bị tắt chế độ xem), nhưng thay vào đó tôi nhận được một chuỗi rỗng:
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
}
}
Tác giả của bài viết đó dường như là một chuyên gia về đề tài này, vì vậy tôi giả sử tôi đang làm một cái gì đó sai!?!
thanx
Bạn thấy gì khi bạn kiểm tra Yêu cầu [DropDownList1.ClientID] trên postback? –
Khi đăng lại yêu cầu [DropDownList1.ClientID] không trả về giá trị đã chọn – SourceC
Tôi không chắc chắn rằng ClientID là lựa chọn tốt nhất ... Tôi là UniqueID là một trong đó phù hợp trong 'Request.Form [DropDownList1.UniqueID]' – Jaider