Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#或使用jQuery中按日期属性拆分列表_C#_Jquery_Asp.net_Repeater - Fatal编程技术网

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

在C#或使用jQuery中按日期属性拆分列表,c#,jquery,asp.net,repeater,C#,Jquery,Asp.net,Repeater,我有一个列表,一个事件有一个日期属性。我目前正在将此列表绑定到一个asp:repeater,这很好,并生成一个事件标题列表,如下所示: 事件1 事件2 事件3 事件4 事件5 但是,现在我希望在不同日期发生的事件之间的列表中添加某种分隔符,以便我的列表如下所示: 2011年5月10日,星期二 事件1 事件2 2011年5月11日,星期三 事件3 2011年5月12日,星期四 事件4 事件5 有人能推荐一个好的方法吗。我很乐意在服务器端操作列表,或者绑定列表,然后使用jQuery在客户端添加分隔符

我有一个
列表
,一个
事件
有一个
日期
属性。我目前正在将此列表绑定到一个
asp:repeater
,这很好,并生成一个事件标题列表,如下所示:

事件1
事件2
事件3
事件4
事件5

但是,现在我希望在不同日期发生的事件之间的列表中添加某种分隔符,以便我的列表如下所示:

2011年5月10日,星期二 事件1
事件2
2011年5月11日,星期三 事件3
2011年5月12日,星期四 事件4
事件5


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

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

父重复渲染器渲染日期,并为父项的日期嵌套一个项


所有这些都是关于以另一种方式设置中继器的数据源,而不是当前数据源,并使用Repeater.ItemDataBound事件进行播放。

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

另一种方式:

List date = (From Event n in yourEventList select new {n.Date}).ToList().Distinct(); foreach (DateTime dateA in date) { //add to the Date and then add the events does match with the date. } 列表日期=(来自事件列表中的事件n 选择new{n.Date}).ToList().Distinct(); foreach(日期时间dateA in date) { //添加到日期,然后添加与日期不匹配的事件。 }
您可以使用Linq按日期服务器端分组

类事件
{
公共日期时间事件日期;
公共字符串EventName;
}
List events=GetEvents();
var grouped=events.GroupBy(e=>e.EventDate.Date).OrderBy(g=>g.Key);
foreach(分组中的变量分组)
{

Console.WriteLine(grouping.Key);//您可以使用嵌套的
asp:repeater
,查询按事件日期分组,外部的repeater只显示日期,内部的repeater显示该组的事件。+1-我在Matias Fidemraizer的回答中使用了这个和嵌套的repeater来实现我想要的。+1-我使用了这个和分组,以防震惊星球这是实现我想要的答案。
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); 
    }
}