Связывание DropDownList с массивом DataRow - PullRequest
1 голос
/ 29 июня 2011

Я связываю DropDownList с DataRow, но выдает исключение:

Привязка данных: «System.Data.DataRow» не содержит свойства с именем «CourseEligiblility».

Код:

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

Ответы [ 5 ]

5 голосов
/ 24 июня 2012

Просто используйте функцию, которая копирует массив DataRow в новый DataTable и возвращает его.

//  .
//  .
//  .
ddlBeStream.DataSource = dRow.CopyToDataTable;
ddlBeStream.DataBind();
4 голосов
/ 08 января 2012

Возьмите DataView и отфильтруйте его по полю

например.

DataView dv = dt.DefaultView;
dv.RowFilter = "colums=1";
DropDownList1.DataSource = dv;
DropDownList1.DataTextField = "colName";
DropDownList1.DataValueField = "colID";
DropDownList1.DataBind();
1 голос
/ 29 июня 2011

Попробуйте using ddlBeStream.DataBind();

0 голосов
/ 09 марта 2015

Для людей, все еще использующих старые версии 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();
0 голосов
/ 29 июня 2011

Я думаю, что вы допустили ошибку, написав название поля.Попробуйте следующее:

ddlBeStream.DataTextField = "CourseEligibility";
...