0

ノックアウト foreach データ バインドを使用して .Net グループ化を反復する方法を理解しようとしています。私が抱えている問題は、JSON にシリアル化された IGrouping の .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のコレクションを. 次に、 JSON を使用してエンティティを返します。プロパティ用に生成された JSON は次のようになります (生成されたものの概要をわかりやすくするために、ノードを折りたたんだり展開したりしています)。BookingLegStartDateBookingResultGrouped

ここに画像の説明を入力

クライアントでやりたいことは、テンプレートを作成し、キーをリスト ヘッダーとして出力するノックアウト 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>

上記が間違っていることはわかっています.1つは、グループ化されたキーが存在しないことです。

テンプレートを作成して、グループ化のキーと値をリストに正しく出力する方法を知っている人はいますか? ところで、ここではjquery mobileも使用しています(したがって、データロールのものです)。

ありがとう!

ジェームズ

4

1 に答える 1

1

JavaScriptSerializer は、IGrouping オブジェクトの Key プロパティを処理しません。同様の問題と考えられる解決策については、この質問を参照してください。

于 2012-04-16T16:04:01.410 に答える