敲除foreach数据绑定分组数据

时间:2012-04-16 15:46:02

标签: .net json jquery-mobile knockout.js igrouping

我正试图弄清楚如何使用knockout foreach data-bind迭代.Net分组。我遇到的问题是,一旦将IGroupings序列化为JSON,我就不知道如何迭代.Net的.Net集合......

在服务器端,我有一个.Net对象,如下所示:

public class BookingResult
{
    public IEnumerable<IGrouping<DateTime, BookingLeg>> Grouped { get; set; }
} 

public class BookingLeg
{
    public string DepartureDate { get; set; }
    public string ArrivalDate { get; set; }
    public string Name { get; set; }

    public DateTime StartDate { get; set; }
}

我正在创建Grouped属性,方法是按BookingLegStartDate个实体进行分组。然后我使用JSON返回BookingResult实体。为Grouped属性生成的JSON看起来像这样(我已经折叠并展开了节点,以便更好地概述生成的内容):

enter image description here

我想在我的客户端上做的是创建一个模板并绑定到knockout foreach绑定,输出密钥作为列表标题,然后对于该键中的每个值,从值输出一些细节。它看起来像这样:

01/01/2012
  - Transfer
  - Flight
  - Transfer
03/01/2012
  - Transfer
  - Cruise

...

我试图这样做:

<ul data-role="listview" data-bind="foreach: Grouped">
    <li data-role="list-divider"><span data-bind="text: Key"></span></li>
    <li data-bind="text: Name, click: $parent.getBookingLegDetail"></li>
</ul>

我知道上面的错误,因为一个 - 分组中不存在密钥。

有谁知道如何创建模板以正确输出列表中的分组的键和值? BTW我也在这里使用jquery mobile(因此数据角色的东西)

谢谢!

詹姆斯

1 个答案:

答案 0 :(得分:1)

JavaScriptSerializer不处理IGrouping对象中的Key属性。有关类似问题和可能的解决方案,请参阅this问题。