2012-05-16 193 views
0

我有一個從數據庫填充的下拉列表。當我使用dplTags.SelectedItem.Value它只返回第一個值,而不是我選擇的那個?如何在下拉列表中獲取所選項目的值?

有人可以打電話給我,我哪裏會出錯?

當我把它叫做:

String TagID = dplTags.SelectedItem.Value; // Will only select the first value???? 

它總是返回的第一個項目,而不是選擇一個的標籤識別:\

這是我如何將它綁定:

using (var conn = new SqlConnection(Properties.Settings.Default.DBConnectionString)) 
      { 
       conn.Open(); 

       SqlDataAdapter daTags 
       = new SqlDataAdapter("Select * From Tag", conn); 

       DataSet dsTags = new DataSet("TagCloud"); 

       daTags.FillSchema(dsTags, SchemaType.Source, "Tag"); 
       daTags.Fill(dsTags, "Tag"); 

       daTags.MissingSchemaAction = MissingSchemaAction.AddWithKey; 
       daTags.Fill(dsTags, "Tag"); 

       DataTable tblTag; 
       tblTag = dsTags.Tables["Tag"]; 

       dplTags.DataSource = dsTags; 
       dplTags.DataMember = "Tag"; 
       dplTags.DataValueField = "TagID"; //Value Member 
       dplTags.DataTextField = "Value"; // Display Member 
       dplTags.DataBind(); 
      } 

請幫助,在此先感謝。啓用和數據綁定頁面

+0

嘗試DropDownList.SelectedItem.Value.ToString(),它適用於我。還要嘗試調試代碼來檢查DropDownList項的實際SelectedValue。 –

+0

試過.ToString()沒有任何區別。即使我選擇第5項並在下拉列表中顯示了第5項的值,但是當我單擊提交按鈕並使用子彈點檢查我的代碼時,.selecteditem始終是第一項。 – Pomster

+0

Adil的解決方案可以滿足您的需求。試試那個。 –

回答

3

你在哪裏數據綁定到這些下拉列表控件?它們應該僅在頁面的初始加載中被綁定,如下所示。我懷疑你是在每一頁加載中綁定它們,因此選定的值消失。

protected void Page_Load(object sender, EventArgs e) 
{ 

    if (!Page.IsPostBack) 
    { 
     //Please check if you are binding checkbox controls here. 
     //If not bring them in here 
    } 
} 
+0

沒有隻在一個page_load中,我只有一個頁面 – Pomster

1

保持視圖狀態下拉只有當Page.IsPostback ==假

+0

正如Romil的回覆 - > http://stackoverflow.com/a/10616087/525251 – rt2800

1

綁定一次在第一頁的負荷,不回發再次綁定它的下拉列表中。再次綁定它將填充新元素的下拉列表,之前的選擇將會丟失。

if(!Page.IsPostBack) 
{ 
using (var conn = new SqlConnection(Properties.Settings.Default.DBConnectionString)) 
      { 
       conn.Open(); 

       SqlDataAdapter daTags 
       = new SqlDataAdapter("Select * From Tag", conn); 

       DataSet dsTags = new DataSet("TagCloud"); 

       daTags.FillSchema(dsTags, SchemaType.Source, "Tag"); 
       daTags.Fill(dsTags, "Tag"); 

       daTags.MissingSchemaAction = MissingSchemaAction.AddWithKey; 
       daTags.Fill(dsTags, "Tag"); 

       DataTable tblTag; 
       tblTag = dsTags.Tables["Tag"]; 

       dplTags.DataSource = dsTags; 
       dplTags.DataMember = "Tag"; 
       dplTags.DataValueField = "TagID"; //Value Member 
       dplTags.DataTextField = "Value"; // Display Member 
       dplTags.DataBind(); 
      } 
} 
相關問題