在嵌套ListView中访问Parent DataItem

在嵌套ListView中访问Parent DataItem

问题描述:

所以我有两个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

如果您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

OK;我已经有了一个解决方案,但我会留下这个开放一点,以防有人能想出更好的解决方案。

基本上,我使用MinPrice和MaxPrice值并将它们转储到嵌套ListView之外的HiddenField中。

然后,在嵌套的内部,我钻出(Container.Parent),找到HiddenField,然后提取它的值。

+0

有点哈克,但对我很好。 – Larry 2011-05-30 11:49:35

我有同样的问题,我发现了另一个解决方案,我想与大家分享。

从上嵌套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

如果您已设置DataKeyNames在父级,那么你可以这样访问它

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