【问题标题】:knockout foreach data bind on grouped data分组数据上的淘汰赛 foreach 数据绑定
【发布时间】:2012-04-27 23:21:02
【问题描述】:

我试图弄清楚如何使用淘汰赛 foreach 数据绑定来遍历 .Net 分组。我遇到的问题是,一旦将 IGroupings 序列化为 JSON,我不知道如何迭代 .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; }
}

我正在通过将BookingLeg 实体的集合按其StartDate 分组来创建Grouped 属性。然后我使用 JSON 返回 BookingResult 实体。为 Grouped 属性生成的 JSON 如下所示(我已折叠并展开节点,以便您更好地了解生成的内容):

我想在我的客户端上做的是创建一个模板并绑定到敲除 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>

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

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

谢谢!

詹姆斯

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我决定走一个有键有值的新类型的路。我不知道如何迭代这个值!将发布另一个问题...不过谢谢!我快到了!
    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 2019-05-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    相关资源
    最近更新 更多