首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中按日期拆分列表或使用jQuery

在C#中按日期拆分列表或使用jQuery
EN

Stack Overflow用户
提问于 2011-05-10 13:35:20
回答 3查看 353关注 0票数 3

我有一个List<Event>Event有一个Date属性。我目前正在将这个列表绑定到一个asp:repeater,这个列表很好,并生成了如下所示的事件标题列表:

活动1

活动2

活动3

活动4

活动5

但是,现在我希望在不同日子发生的事件列表中添加某种分隔符,以便使我的列表看起来如下:

,2011年5月10日,星期二,

活动1

活动2

二00一年五月十一日(星期三)

活动3

2011年5月12日(星期四)

活动4

活动5

有人能推荐一种很好的方法吗。我很乐意操纵我的列表服务器端或者绑定我的列表,然后用jQuery添加分隔符客户端。有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-10 13:52:07

您可以使用Linq的GroupBy按日期服务器端分组

代码语言:javascript
复制
class Event
{
    public DateTime EventDate;
    public string EventName;
}

List<Event> events = GetEvents();

var grouped = events.GroupBy(e => e.EventDate.Date).OrderBy(g => g.Key);

foreach (var grouping in grouped)
{
    Console.WriteLine(grouping.Key); // <-- this is the date

    foreach (Event e in grouping) // <-- this is the list of events
    {
        Console.WriteLine(e.EventName); 
    }
}

GroupBy返回IEnumerable<IGrouping<TKey, TSource>>,因此在本例中您将返回IEnumerable<IGrouping<DateTime, Event>>

票数 2
EN

Stack Overflow用户

发布于 2011-05-10 13:40:42

或者您可以使用嵌套的中继器-在这种情况下,您将需要其中两个-。

父中继器呈现日期,并嵌套父项的日期。

这一切都是关于用与当前不同的方式设置中继器的数据源,并使用Repeater.ItemDataBound事件。

票数 1
EN

Stack Overflow用户

发布于 2011-05-10 13:43:42

您可以按日对事件进行分组,并将该键用作中继器的标题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5950909

复制
相关文章

相似问题

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