我目前正在尝试从DataTable中检索一个列,该列包含具有某些确定列内对象的列。
让我们看看:
(this.CohortGrid.DataSource as DataTable).DefaultView.RowFilter = string.Format("CohortFormation.Name LIKE '*{0}*'", ddlFormation.SelectedItem.Text);
我在DataTable中有这些列:
[0]:Id
[1]:姓名
[2]:状态
[3]:群组形式
[4]:RoomCol
[5]:InstructorCol
[6]:EmployeeCol
列CohortFormation是一个包含Id和名称的对象。
所以,我正在尝试像CohortFormation.Name LIKE
一样检索同类群组的名称
但它让我回答:
无法找到列
在网格视图TemplateField中,我可以<%# Eval("CohortFormation.Name") %>
,它可以很好地工作。但在代码背后我怎么能这样做?
答案 0 :(得分:0)
我刚刚找到了一个解决方案,而且效果很好!
我遍历DataTable并删除不等于DropDownList中选择的值的行 - &gt; ddlFormation。
有代码:
CohortCollection cohortCol = (CohortCollection)Session["cohortCol"];
foreach(Cohort cohort in cohortCol.ToList())
{
if(cohort.Status.Id != int.Parse(ddlFormation.SelectedItem.Value))
{
cohortCol.Remove(cohort);
}
}
this.CohortGrid.DataSource = cohortCol;
this.CohortGrid.DataBind();
所以,诀窍是循环列表而不是DataTable,如果它不等于我们删除对象。最后,我们绑定数据。
完美无缺!