2012-04-16 5 views
0

knockout foreach 데이터 바인딩을 사용하여 .Net 그룹화를 반복하는 방법을 알아 내려고하고 있습니다. 내가 가진 문제는. 일단 JSroup에 직렬화되면 IGroupings의 .Net 콜렉션을 반복하는 방법을 모른다는 것입니다 ...knockout foreach 데이터 그룹화 된 데이터에 대한 데이터 바인딩

서버 측에 다음과 같은 .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; } 
} 

그리고 나는 그들의 StartDate에 의해 BookingLeg 엔티티의 컬렉션을 그룹화하여 Grouped 속성을 만드는거야. 그런 다음 JSON을 사용하여 BookingResult 엔티티를 반환합니다. Grouped 속성에 대해 생성 된 JSON은 다음과 같습니다 (난 당신이 생성 된 것을의 더 나은 개요를 제공하기 위해 노드를 축소 및 확장 한) :

enter image description here

하는 I가 할 싶은 무엇을 내 클라이언트는 템플릿을 만들고 녹아웃 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 모바일을 사용하고있다. (그러므로 데이터 - 역할에 관한 것들).

감사합니다.

제임스

답변

1

JavaScriptSerializer는 IGrouping 개체의 키 속성을 처리하지 않습니다. 유사한 문제와 가능한 해결책은 this 질문을 참조하십시오.

+0

키와 값으로 새로운 유형의 길을 가기로 결심했습니다. 비록 가치를 반복하는 방법을 알아낼 수 없습니다! 다른 질문을 올리려고 ... 고마워! 나는 거의 다 왔어! –