2010-03-31 29 views
2

所以我有兩個listviews;一個嵌套在另一個內部。在嵌套ListView中訪問Parent DataItem

父項綁定到包含諸如MaxPrice,MinPrice和SuggestedProducts等字段的對象集合。

嵌套的一個綁定到父項的SuggestedProducts集合。

如何在嵌套列表視圖中引用MaxPrice和MinPrice?它甚至有可能嗎?

如果您需要澄清,請留下評論,我會更新我的問題。

謝謝!

編輯:這是一個ASP.NET的ListView

+0

哪個'ListView':ASP.NET,WinForms,WPF ...? – Jay 2010-03-31 15:09:17

+0

這是一個ASP.NET ListView – 2010-03-31 15:10:28

回答

1

如果您SuggestedProduct類將有一個參考回到它的父類X(這樣你就會有一個bidrectional數據模型:X has a collection of SuggestedProducts and SuggestedProduct has an object reference to X),你可以給SuggestedProduct屬性,如MinPrice { get {return parentX.MinPrice;} }(也許還設置),然後使用Eval("MinPrice")(和也許還綁定)在你的嵌套ListView。

正如一個想法,以防您的類模型的修改是一個真實而簡單的選擇。

+0

非常好的一點,但實際的DataModel在封面下有點複雜。我實際上綁定的是一個嚴格爲數據綁定而創建的自定義對象(即,我接收大量其他信息,然後將它們一起組裝到正在綁定的對象中)。不幸的是,我沒有辦法在這個上游返回上游。 – 2010-03-31 17:49:32

0

OK;我已經有了一個解決方案,但我會留下這個開放一點,以防有人能想出更好的解決方案。

基本上,我使用MinPrice和MaxPrice值並將它們轉儲到嵌套ListView之外的HiddenField中。

然後,在嵌套的內部,我鑽出(Container.Parent),找到HiddenField,然後提取它的值。

6

我有同樣的問題,我發現了另一個解決方案,我想與大家分享。

從上嵌套ListView孩子的ItemDataBound事件,你可以從父參考做這樣的事情:

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

希望這有助於人同樣的問題

+1

不確定投票的原因,但這可能是最好的解決方案。正在研究與中繼器類似的問題,但同樣的邏輯適用。 – Chris 2013-03-19 10:17:37

+0

我同意。我正在尋找類似的解決方案,第一行幫助我找到解決方案。我想有些人希望複製/粘貼,而其他任何東西都是不可能的:P – CyberHawk 2014-02-07 08:51:33

+0

提供的解決方案有所幫助,但仍然對網頁表單感到厭煩。 – Citroenfris 2015-11-03 20:38:33

1

如果您已設置DataKeyNames在父級,那麼你可以這樣訪問它

((ListView)Container.Parent.Parent.Parent.Parent).DataKeys[((ListViewDataItem)Container.Parent.Parent.Parent).DataItemIndex][0]