2010-03-31 4 views
2

그래서 두 개의 listview가 있습니다. 하나는 다른 내부에 중첩되어 있습니다.중첩 된 ListView의 상위 DataItem에 액세스

상위 항목은 MaxPrice, MinPrice 및 SuggestedProducts와 같은 필드가 포함 된 개체 모음에 바인딩됩니다.

중첩 된 항목이 상위 항목의 SuggestedProducts 모음에 바인딩됩니다.

중첩 된 목록보기에서 MaxPrice 및 MinPrice를 어떻게 참조 할 수 있습니까? 심지어 가능할까요?

설명이 필요하면 의견을 남기고 질문을 업데이트하겠습니다.

감사합니다.

편집 : 이것은 ASP.NET ListView입니다.

+0

어느 ListView는 ASP.NET, WinForms, WPF ...입니까? – Jay

+0

이것은 ASP.NET ListView입니다. –

답변

1

당신의 SuggestedProduct 클래스는 다시 부모 클래스 X에 대한 참조를했을 경우 (그래서 당신은 bidrectional 데이터 모델 거라고 : X has a collection of SuggestedProducts and SuggestedProduct has an object reference to X)는 MinPrice { get {return parentX.MinPrice;} } 같은 SuggestedProduct 속성을 부여 (그리고 아마도도 설정) 다음 Eval("MinPrice")을 사용할 수를 (그리고 아마도 또한 Bind)를 중첩 된 ListView에 추가합니다.

클래스 모델을 수정하는 것이 실제적이고 쉬운 방법 인 경우를 생각해보십시오.

+0

아주 좋은 지적이지만, 실제 데이터 모델은 커버 아래에서 다소 복잡합니다. 내가 실제로 바인딩하는 것은 데이터 바인딩을 위해 엄격하게 만들어진 맞춤 개체입니다 (즉, 나는 많은 정보를 취한 다음 바운드되는 객체에 모아서 모두 조합합니다). 불행히도, 나는 이것을 상류로 되돌릴 방법이 없다. –

0

OK; 나는 그 자리에 해결책을 가지고있다. 그러나 누군가가 더 좋은 것을 생각 해낼 수있는 경우를 대비하여 이것을 열어 둔다.

기본적으로 MinPrice 및 MaxPrice 값을 가져 와서 중첩 된 ListView 외부의 HiddenField로 덤핑합니다.

그런 다음 중첩 된 내부에서 나는 (Container.Parent)를 드릴링하고, HiddenField를 찾고 값을 추출합니다.

6

난 그냥 같은 문제를했고 내가 공유하고 싶은 다른 해결책을 찾아 냈다. 같은 문제로이 도움말 사람들이

+1

투표 실패 이유에 대해 확신하지 못했지만 이것이 아마도 가장 좋은 해결책이었을 것입니다. 리피터로 비슷한 문제가 해결되었지만 동일한 논리가 적용됩니다. – Chris

+0

동의합니다. 나는 비슷한 솔루션을 찾고 있었고, 첫 번째 라인은 해결책을 찾는데 도움이되었습니다.일부는 복사/붙여 넣기를 기대하고 있으며 그 밖의 다른 질문은 없다고 생각합니다. P – CyberHawk

+0

제공되는 솔루션이 도움이되었지만 여전히 웹 양식을 두려워합니다. – Citroenfris

1

가 설정되어있는 경우

ListViewDataItem CurrentParentItem = (ListViewDataItem)e.Item.Parent.Parent.Parent; 
ParentObject parentObject = CurrentParentItem.DataItem as ParentObject 
//Then you can access to parentObject.MaxPrice & parentObject.MinPrice 

희망 : ListView 중첩 아이의 ItemDataBound 이벤트에서

이 같은 일을 부모로부터 참조를 얻을 수 있습니다 부모의 DataKeyNames는 다음과 같이 접근 할 수 있습니다.

((ListView)Container.Parent.Parent.Parent.Parent).DataKeys[((ListViewDataItem)Container.Parent.Parent.Parent).DataItemIndex][0] 
관련 문제