2014-09-24 29 views
0

我想要在今天上午修復與ASP.NET控件下拉列表的一個問題:DROPDOWNLIST將selectedItem不能在重定向頁面檢索

我現在面臨的情況是檢索selectedItem屬性和節目在重定向頁面(某種所有用戶信息的摘要)中,然後給用戶提交或編輯的選項。但我總是得到兩個dropdownlist的第一項。

我的代碼:

   mydrop.DataSource = function(); 
       mydrop.DataTextField = "test"; 
       mydrop.DataValueField = "type"; 
       mydrop.DataBind(); 
       mydrop.SelectedIndex = 0; 

       string[] a = new string[] { test.SelectedItem.Text, test2.Text,}; 
       Session["dataForm"] = a; 

       Response.Redirect("~/mypage.aspx"); 
在頁面在Page_Load

我將用戶重定向到:

string[] a = (string[])Session["dataForm"]; 
     test.Text = a.GetValue(0).ToString(); 
     test2.Text = a.GetValue(1).ToString(); 

,但我總是得到下拉列表的第一個項目,即使我改變選擇。

感謝您的閱讀,並且提前感謝您的幫助。

+1

回發的問題:你有沒有如果(!IsPostBack){}在您的mydrop的init? – Pleun 2014-09-24 10:15:38

+0

測試和測試是我在上面的示例中給出的控件的名稱。由於某些原因,不想提供真實姓名。謝謝 – user2233979 2014-09-24 10:18:24

+0

你是否正在綁定'Page_Load'方法中的下拉列表? – 2014-09-24 10:19:27

回答

0

首先,你可以設置autoPostback=true,然後把波紋管在Page_Load綁定:

if(!IsPostback) 
{ 
      mydrop.DataSource = function(); 
      mydrop.DataTextField = "test"; 
      mydrop.DataValueField = "type"; 
      mydrop.DataBind(); 
      mydrop.SelectedIndex = 0; 

} 

現在將代碼放在SelectedIndexChanged事件mydrop如下:

protected void mydrop_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string[] a = new string[] { test.SelectedItem.Text, test2.Text,}; 
    Session["dataForm"] = a; 
    Response.Redirect("~/mypage.aspx"); 
}