在嵌套ListView中访问父DataItem

时间:2010-03-31 15:05:29

标签: c# asp.net data-binding listview nested

所以我有两个列表视图;一个嵌套在另一个里面。

父对象绑定到包含MaxPrice,MinPrice和SuggestedProducts等字段的对象集合。

嵌套的一个绑定到父项的SuggestedProducts集合。

如何在嵌套列表视图中引用MaxPrice和MinPrice?它甚至可能吗?

如果您需要任何澄清,请给我留言,我会更新我的问题。

谢谢!

编辑:这是一个ASP.NET ListView

5 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,我找到了另一个我想分享的解决方案。

来自嵌套ItemDataBound子项的ListView事件,你可以从父母那里得到这样的引用:

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

希望这可以帮助有同样问题的人

答案 1 :(得分:1)

如果您的SuggestedProduct类有一个返回其父类X的引用(因此您有一个双向数据模型:X has a collection of SuggestedProducts and SuggestedProduct has an object reference to X),您可以提供像MinPrice { get {return parentX.MinPrice;} }这样的SuggestedProduct属性(也许还可以设置) )然后在嵌套的ListView中使用Eval("MinPrice")(也许还有Bind)。

就像一个想法,以防你的类模型的修改是一个真实而简单的选择。

答案 2 :(得分:1)

答案 3 :(得分:1)

如果您已在父级中设置了DataKeyNames,则可以像这样访问它

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

答案 4 :(得分:0)

行;我已经有了一个解决方案,但是如果有人能想出一个更好的解决方案,我会稍微公开一下。

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

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