作者:09会计系欣荣19__81_186 | 来源:互联网 | 2023-06-06 13:03
IneedtoretrieveasetofWidgetsfrommydataaccesslayer,groupedbywidget.Manufacturer,todi
I need to retrieve a set of Widgets from my data access layer, grouped by widget.Manufacturer, to display in a set of nested ASP.NET ListViews.
我需要从我的数据访问层检索一组Widgets,按widget.Manufacturer分组,以显示在一组嵌套的ASP.NET ListViews中。
The problem is that (as far as I can tell) the nested ListView approach requires me to shape the data before using it, and I can't figure out the best approach to take. The best I've been able to come up with so far is to put a LINQ query in my data access layer like so:
问题是(据我所知)嵌套的ListView方法要求我在使用之前对数据进行整形,我无法找出最佳方法。到目前为止,我能够提出的最好的方法是在我的数据访问层中放置LINQ查询,如下所示:
var result = from widget in GetAllWidgets(int widgetTypeID)
group widget by widget.Manufacturer into groupedWidgets
let widgets = from widgetGroup in groupedWidgets
select widgetGroup
select new { Manufacturer = groupedWidgets.Key, Widgets = widgets };
Of course, anonymous types can't be passed around, so that doesn't work. Defining a custom class to enclose data seems like the wrong way to go. Is there some way I can perform the grouping on the ASP.NET side of things? I'm using ObjectDataSources to access the DAL.
当然,匿名类型不能传递,所以这不起作用。定义一个自定义类来封装数据似乎是错误的方法。有没有什么方法可以在ASP.NET方面执行分组?我正在使用ObjectDataSources来访问DAL。
Updated: OK, I'm not creating an anonymous type anymore, and instead my DAL passes an IEnumerable>
to the ASP.NET page, but how can I use this in my ListViews? I need to render the following HTML (or something pretty much like it)
更新:好的,我不再创建匿名类型,而是我的DAL将IEnumerable
>传递给ASP.NET页面,但是我如何在ListViews中使用它?我需要渲染以下HTML(或者非常类似的东西)
- Foo Corp.
- Baz
- Quux
- Bar Corp.
- Thinger
- Whatsit
Originally, I had a ListView within a ListView like so:
最初,我在ListView中有一个ListView,如下所示:
Note how the DataSource
property of WidgetsListView is itself databound. How can I duplicate this functionality without reshaping the data?
请注意WidgetsListView的DataSource属性本身是如何数据绑定的。如何在不重塑数据的情况下复制此功能?
This is getting kind of complicated, sorry if I should have just made a separate question instead.
这有点复杂,对不起,如果我应该刚刚提出一个单独的问题。
3 个解决方案