ASP.net中嵌套的Datalists

时间:2009-03-04 18:45:58

标签: c# asp.net vb.net nested datalist

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

有谁知道我怎么能做到这一点?

2 个答案:

答案 0 :(得分:1)

我不知道将这个存档的简洁方法。

哈克你可能(不)想尝试:

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

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

答案 1 :(得分:1)

我不知道如何内联,但如果你挂钩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");

  }
}