Radzen DataGrid按OwnerLName分组后统计CrmTask列数据的疑问
Radzen DataGrid分组后按条件统计的解决方案
核心问题说明
你之前困惑的context是Radzen分组模板里的当前分组上下文对象,它代表当前OwnerLName分组下的所有数据子集,而非整个数据表的数据源。这就是为什么用表名、应用名前缀会统计全表数据——你没限定到当前分组的范围。
正确的统计代码
直接使用context作为前缀就能获取当前分组的数据,统计EventStep1Complete为true的次数的代码如下:
context.Data.Items.Cast<CrmTask>().Count(o => o.EventStep1Complete == true)
也可以简化写法(bool类型可直接判断):
context.Data.Items.Cast<CrmTask>().Count(o => o.EventStep1Complete)
配置补充说明
在Radzen的DataGrid中实现该功能的步骤:
- 确保已给DataGrid设置
GroupBy="OwnerLName"完成分组配置 - 打开DataGrid的
GroupHeaderTemplate编辑界面 - 在模板中添加文本或组件,绑定上述表达式作为显示内容,例如:
步骤1已完成任务数:@context.Data.Items.Cast<CrmTask>().Count(o => o.EventStep1Complete)
无效原因解释
你用应用名、表名作为前缀时,调用的是整个数据源的集合;而context是Radzen渲染每个分组时自动传入的当前分组数据上下文,仅包含当前OwnerLName分组下的CrmTask记录,这样统计的才是分组内的结果,而非全表数据。
内容的提问来源于stack exchange,提问作者David Gammon
相关产品推荐
相关产品推荐

