我有一个从存储过程填充的DataTable。我正在使用groupby对DataTable进行查询,以便我可以在ListView中实现ListView。 (Matt Berseth - Building a Grouping Grid with the ASP.NET 3.5 LinqDataSource and ListView Controls)
我的代码隐藏中的查询:
var query = from c in dtTaskOrder.AsEnumerable()
group c by c.Field<string>("CLIN") into g
select new
{
Key = g.Key,
Count = g.Count(),
Items = g
};
listv.DataSource = query.ToList();
listv.DataBind();
在我的aspx文件中,我尝试在项目和后续列上进行Eval:
<asp:ListView ID="lv1" ... DataSource='<%# Eval("Items") %>'>
<td><%# Eval("SLIN") %></td> // column name
<td><%# Eval("ACRN") %></td> // column name
<td><%# Eval("Status") %></td> // last column name
HttpException未被用户代码处理 - 当它尝试对上述列名称进行Eval时。
如何制定上述查询以便“Items”为“Typed”,我可以使用列名。
感谢您的帮助。
答案 0 :(得分:3)
如果不仅仅是拼写错误,您可以使用g
上的子查询来构建强类型对象的集合:
var query = from c in dtTaskOrder.AsEnumerable()
group c by c.Field("CLIN") into g
select new
{
Key = g.Key,
Count = g.Count(),
Items = from i in g
select new { CLIN = i.Field("CLIN"),
ACRN = i.Field("ACRN"),
Status = i.Field("Status") }
};
答案 1 :(得分:0)
你写的Eval(“SLIN”)是否可能是Eval(“CLIN”)? 只是一个想法。否则,我之前使用相同的代码并且它可以工作。