ASP.net 中的嵌套数据列表

发布于 2024-07-15 08:02:21 字数 91 浏览 8 评论 0原文

我正在使用嵌套数据列表来显示分层数据。 在嵌套数据列表中,我希望能够绑定到属于父数据列表所绑定到的对象的属性。

有谁知道我怎样才能实现这一目标?

I am using nested datalists to display hierarchical data. In the nested datalist i want to be able to bind to a property that belongs to the object that the parent datalist is bound to.

does anyone know how I can achieve this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怪异←思 2024-07-22 08:02:21

我不知道一个干净的方法来存档这个。

你可能(不想)想尝试:

<%# 
     (DataBinder.GetDataItem(Container.BindingContainer...BindingContainer) as AType)
     .PropertyOfParentsDataListDataItem 
 %>

或者

<%# 
     Eval(
        DataBinder.GetDataItem(Container.BindingContainer...BindingContainer)
        ,"PropertyOfParentsDataListDataItem"
     )
 %>

I dont know a clean way to archive this.

Hack you may (not) want to try:

<%# 
     (DataBinder.GetDataItem(Container.BindingContainer...BindingContainer) as AType)
     .PropertyOfParentsDataListDataItem 
 %>

or

<%# 
     Eval(
        DataBinder.GetDataItem(Container.BindingContainer...BindingContainer)
        ,"PropertyOfParentsDataListDataItem"
     )
 %>
哽咽笑 2024-07-22 08:02:21

我不知道如何内联执行此操作,但如果您连接到 OnItemDataBound,则可以使用以下代码:

Protected Sub YourList_ItemDataBound(ByVal sender As Object, ByVal e As DataListItemEventArgs) Handles YourList.ItemDataBound

  If e.Item.ItemType = ListItemType.Item Or _
    e.Item.ItemType = ListItemType.AlternatingItem Then

    CType(e.Item.FindControl("LabelName"), Label).Text = _
       DataBinder.Eval(CType(sender.Parent, DataListItem).DataItem, "FieldName"))

  End If

End Sub

或在 C# 中(未经验证)

Protected Void YourList_ItemDataBound(Object sender, DataListItemEventArgs e)
{
   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
  {
    ((Label)e.Item.FindControl("LabelName")).Text = 
       DataBinder.Eval(((DataListItem)sender.Parent).DataItem, "FieldName");

  }
}

I don't know how to do it inline, but if you hook into OnItemDataBound you can use the following code:

Protected Sub YourList_ItemDataBound(ByVal sender As Object, ByVal e As DataListItemEventArgs) Handles YourList.ItemDataBound

  If e.Item.ItemType = ListItemType.Item Or _
    e.Item.ItemType = ListItemType.AlternatingItem Then

    CType(e.Item.FindControl("LabelName"), Label).Text = _
       DataBinder.Eval(CType(sender.Parent, DataListItem).DataItem, "FieldName"))

  End If

End Sub

or in C# (unverified)

Protected Void YourList_ItemDataBound(Object sender, DataListItemEventArgs e)
{
   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
  {
    ((Label)e.Item.FindControl("LabelName")).Text = 
       DataBinder.Eval(((DataListItem)sender.Parent).DataItem, "FieldName");

  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文