2014-03-25 68 views
4

我有一個代碼填充下拉列表,直接從數據庫。但是底部有一個沒有價值的可選項目。我怎樣才能純粹/完全地綁定數據庫中的數據,以避免將來得到這個空白選擇?DropDownList得到一個空白選擇

protected void DropDownList_OnDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
    { 

     if (e.Row.RowType == DataControlRowType.Footer) 
     { 
      DropDownList ddlName = (DropDownList)e.Row.FindControl("ddlName"); 

      ddlName.DataSource = MyClass.NameList(); 
      ddlName.DataTextField = "Name"; 
      ddlName.DataValueField = "id"; 
      ddlName.DataBind(); 

     } 
    } 
+0

檢查MyClass.NameList()是否返回空白記錄的列表。如果是這樣,你應該從那裏刪除它。否則,一旦綁定就可以從ddl中刪除空白條目。但是,這是糟糕的編碼。只綁定你想要的。 – Sam

+1

沒有它只是直接從視圖中獲取數據:( 公共列表 NameList中() { 變種的varName =從在contxt.View_Names 選擇一個; 返回varName.ToList();} –

+3

確定。而不是ddlName.DataSource = MyClass.NameList();嘗試var list = MyClass.NameList();並查看列表中有什麼,我gussing空行是在那裏 – Sam

回答

1

嘗試刪除您的代碼聲明'< asp:DropDownList>'並再次鍵入它。這將從頭開始刷新您的下拉列表,在刪除它時清除其所有參考。您當前的下拉列表可能會在項目開發的某個地方參考。

+0

剛剛在幾分鐘前嘗試過,但非常感謝! –

+0

哦。對不起,我仍然無法幫助你避免未來的空白。 –

1

確保NameList()方法不返回任何空值。

+0

評論中的方法,但以更易讀的格式重新粘貼 –

+0

public List NameList(){______________ ______ var varName =從contxt.View_Names中選擇一個; ________________________返回varName.ToList(); _____________} –