2011-06-29 94 views
1

的陣列我綁定了DropDownListDataRow但它拋出一個異常:綁定的DropDownList與DataRow中

數據綁定:「的System.Data.DataRow」不包含名爲「CourseEligiblility」的屬性。

代碼:

DataRow[] dRow = dt.Select("CourseID=" + ddlCourse.SelectedValue); 
ddlBeStream.DataTextField = "CourseEligiblility"; 
ddlBeStream.DataValueField = "ID"; 
ddlBeStream.DataSource = dRow; 
ddlBeStream.DataBind(); 
+0

正在從dt.Select函數返回的數據? – Jethro

+0

@Jethro:是... –

回答

0

我想你已經犯了一個錯誤寫字段的名稱。請嘗試以下操作:

ddlBeStream.DataTextField = "CourseEligibility"; 
+0

@Akram Shahda:沒有字段名稱是正確的。如果我直接綁定從datatable dropdownlist,它不顯示任何錯誤。 –

+0

@莫漢:請嘗試再次檢查它。嘗試從字段名稱中刪除第二個_L_。 –

+0

這與數據庫字段名稱相同。 –

1

嘗試using ddlBeStream.DataBind();

3

採取數據視圖,並通過現場

例如過濾。

DataView dv = dt.DefaultView; 
dv.RowFilter = "colums=1"; 
DropDownList1.DataSource = dv; 
DropDownList1.DataTextField = "colName"; 
DropDownList1.DataValueField = "colID"; 
DropDownList1.DataBind(); 
5

只需使用將DataRow Array複製到新DataTable並將其返回的函數。

// . 
// . 
// . 
ddlBeStream.DataSource = dRow.CopyToDataTable; 
ddlBeStream.DataBind(); 
0

對於人們還在使用ASP.net的舊版本:

DataRow[] dRow = dt.Select("CourseID=" + ddlCourse.SelectedValue); 
//Copy Datatable and import found rows 
System.Data.DataTable dt_Temp = dt.Clone();  
foreach (System.Data.DataRow dr in drRow) { dt_Temp.ImportRow(dr); } 

ddlBeStream.DataTextField = "CourseEligiblility"; 
ddlBeStream.DataValueField = "ID"; 
//Use new DataTable 
ddlBeStream.DataSource = dt_Temp; 
ddlBeStream.DataBind();