2010-12-03 205 views
1

我有一個下拉列表控件填充項目和一些代碼來採取當前選定的項目值。問題是我只能得到列表中第一項的值,而不管實際選擇什麼項目。問題與下拉列表

這裏是我的代碼來填充下拉:

protected void displayCreateCategories() 
{ 
    StoreDataContext db = new StoreDataContext(); 
    var a = from c in db.Categories 
        orderby c.Name 
        select new{catName= c.Name, 
         catId=c.CategoryID}; 

    ddlCategory.DataSource = a; 
    ddlCategory.DataTextField = "catName"; 
    ddlCategory.DataValueField = "catId"; 
    ddlCategory.DataBind(); 
} 

獲取當前選定項的值,其在我的情況下,始終是整型我label1.text=Convert.toInt32(ddlCategory.SelectedValue);

我得到的選擇值,但它始終是列表中的第一項。我正在把頭髮拉出來。 :(

回答

4

我懷疑你在每一個頁面加載,這是銷燬列表,重新填充列表,並自動選擇選擇檢索代碼之前的第一個項目獲取運行時間運行列表加載代碼。

使用此建設Page_Load

if (!IsPostBack) 
{ 
    // Initial control population goes here 
} 
+0

這一點我很多東西,直到我真正坐下來,想通了e頁面生命週期 - 事件名稱與WinForms中的聲音相同,但有很大不同。 http://msdn.microsoft.com/en-us/library/ms178472.aspx – 2010-12-03 04:00:37

1

數據綁定將重置該控件的選擇的值,以便確保您檢索回傳數據綁定前,所選值