【问题标题】:Access Parent DataItem in Nested ListView访问嵌套 ListView 中的父数据项
【发布时间】:2011-02-02 23:41:03
【问题描述】:

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

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

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

如何在嵌套列表视图中引用 MaxPrice 和 MinPrice?有没有可能?

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

谢谢!

编辑:这是一个 ASP.NET ListView

【问题讨论】:

  • 哪个ListView:ASP.NET、WinForms、WPF...?

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


【解决方案1】:

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

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

希望对遇到同样问题的人有所帮助

【讨论】:

  • 不确定投反对票的原因,但这可能是最好的解决方案。正在使用中继器解决类似问题,但适用相同的逻辑。
  • 我同意。我一直在寻找类似的解决方案,第一行帮助我找到了解决方案。我猜有些人期待复制/粘贴,而其他任何事情都是不可能的:P
  • 绝对让我走上了正确的道路。 (就我而言,.parent 太多了。谢谢。(6 年后...仍在使用 WebForms)
【解决方案2】:

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

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

【讨论】:

  • 非常好,但实际的 DataModel 在幕后有点复杂。我实际上绑定的是一个自定义对象,它是严格为数据绑定创建的(即,我获取一大堆其他信息,然后将它们全部组装到正在绑定的对象中)。不幸的是,我没有办法回到这个上游。
【解决方案3】:
【解决方案4】:

如果你已经在 parent 中设置了 DataKeyNames,那么你可以这样访问它

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

【讨论】:

    【解决方案5】:

    好的;我已经找到了解决方案,但我会暂时搁置一下,以防有人提出更好的解决方案。

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-10
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 2017-07-03
      • 2016-02-26
      • 1970-01-01
      相关资源
      最近更新 更多