2015-06-04 243 views
0

我已經做了這一百萬次,並沒有線索我在這裏失蹤....唯一的區別是我不是在下拉菜單中的硬編碼值,我通過動態添加它們一個問題。我會後我有什麼下面...下拉菜單c選擇的項目#

ASP.NET:

<asp:DropDownList ID="drpDownMenu" runat="server" CssClass="fields" EnableViewState="true"> 
     <asp:ListItem Text="<Select Device>" Value="0" /> 
</asp:DropDownList> 

C#:

private void PopulateDeviceDropDown() 
    { 
     DataTable dtDrpDownListItems = new DataTable(); 
     string selecItems = "myQuery this works and loads fine"; 

     try 
     { 
      SqlDataAdapter adapter = new SqlDataAdapter(selecItems , sqlConn); 
      sqlConn.Open(); 
      adapter.Fill(dtDrpDownListItems); 
      drpDownMenu.DataSource = dtDrpDownListItems; 
      drpDownMenu.DataTextField = "Number"; 
      drpDownMenu.DataBind(); 
     } 
     catch (Exception ex) 
     { 
      //do something here 
     } 

     finally 
     { 
      sqlConn.Close(); 
     }   
     drpDownMenu.Items.Insert(0, new ListItem("<Select Device>", "0")); 
    } 


protected void btnSave_Click(object sender, EventArgs e) 
    { 
     string test = ""; 
     test = drpDownMenu.SelectedItem.Text; 
    } 

在中的PopulateDeviceDropDown上方的偉大工程..做什麼這是假設做的。

以下btnSave_Click也被解僱,但test變量總是返回<Select Device>無論我做出什麼選擇?

我失去的東西在這裏很明顯?它應該返回我選擇的項目,但返回菜單中的第一項無論如何。

任何意見?

+0

按鈕點擊你正在獲得價值e from drpDownLoadNewDevice如何添加項目到drpDownMenu,你確定它應該是怎麼樣的? – Angloos

+0

你也缺少設置DataValuefield()。設置drpDownMenu.DataValueField – Angloos

回答

0

確保您在您的網頁加載

(!IsPostback) 
{ 
    PopulateDeviceDropDown() 

} 
+0

是的,我得到了,我只是沒有發佈在這裏 – codeBoy

+0

@codeBoy:你可以編輯這個問題? –

0

不是100%肯定,但我會嘗試刪除

<asp:ListItem Text="<Select Device>" Value="0" /> 

,並用代碼替換它:

drpDownMenu.Items.Insert(0, new ListItem("<Select Device>", "0")); 
drpDownMenu.Items.SelectedIndex = 0; 

HTH

+0

我不這麼認爲這是他的問題,我沒有看到drpDownLoadNewDevice人口任何地方在他的代碼中,也沒有看到drpDownLoadNewDevice在asp頁 – Angloos

+0

是啊,這就是爲什麼我刪除了我的答案大聲笑 – Angloos