首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ASPxGridView的一个单元格中聚合项目集合

如何在ASPxGridView的一个单元格中聚合项目集合
EN

Stack Overflow用户
提问于 2012-01-12 05:44:03
回答 2查看 676关注 0票数 2

我使用的是ASP.NET 3.5、LLBLGenPro 3.0和DevExpress 10.1.7。我有一台带LinqServerModeDataSource的ASPxGridView。ASPxGridView的每一行对应于来自LLBLGenPro的一个TaskEntity。TaskEntity的属性之一是OrganizationCollection,它是相关OrganizationEntities的集合。我想要做的是向ASPxGridView中添加一个名为OrgList的列,该列将按名称显示相关组织的列表(理想情况下,在<br>-delimited列表中,因此每个项目都将在其各自的行中,但列表将全部在同一个单元格中,如果该列的EncodeHtml属性设置为“False”,则可以使用该列)。

目前,我在lsmdsTasks_Selecting()事件中有(这是一个简化的例子):

代码语言:javascript
复制
IQueryable<TaskEntity> taskQuery;

taskQuery = TaskQueryStore.GetTasks(...);

var query = from task in taskQuery
            select new 
                   {
                       task.Id,
                       task.TaskName,
                       OrgList = ???
                   }

e.KeyExpression = "Id";
e.QueryableSource = query;

到目前为止,我已经为“?”做了一些尝试,结果如下:

首先,我尝试了:

代码语言:javascript
复制
OrgList = task.OrganizationCollection.Aggregate("", (acc, item) => (acc == "" ? "" : acc + "<br>") + item.OrgName)

这给了我以下ORMException:“这个Linq提供程序不支持‘Aggregate’。请尝试使用支持的方法重写查询。”

然后,我试着:

代码语言:javascript
复制
OrgList = String.Join("<br>", task.OrganizationCollection.Select(x => x.OrgName).ToArray())

这给了我以下ORMException:“对'Join‘的方法调用没有已知的映射数据库函数或其他已知的处理程序。”

唯一有效的方法是:

代码语言:javascript
复制
OrgList = GetOrgList(task.Id)

然后单独定义GetOrgList()方法,该方法接受任务Id并以我想要的格式构建列表,然后将其作为字符串返回。这实际上以我想要的方式显示了网格中的数据,但缺点是,当您尝试对此列进行排序时,它无法正常工作,并且当您尝试使用AutoFilter对此列进行筛选时,它会过滤掉所有内容。另外,我认为它对数据库的访问超出了必要的次数。

有没有办法让它在排序和过滤完好的情况下工作?或者,我需要禁用本专栏的这些功能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-20 23:14:43

最后,我使用prefetchPath将任务提取到组织,然后在Linq2Objects内存查询中使用聚合,然后将结果列表传递给我的网格的数据源,这就起作用了。

票数 0
EN

Stack Overflow用户

发布于 2012-11-20 21:27:26

尝试为您的列使用带有中继器的模板。您可以使用数据绑定将OrgList从列传递到中继器。

如下所示:

代码语言:javascript
复制
<asp:Repeater runat="server" ID="repeater" Datasource='<%# OrgList %>'>
...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8827101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档