2009-03-04 8 views
2

J'utilise des datalists imbriqués pour afficher des données hiérarchiques. Dans le datalist imbriqué, je veux pouvoir lier une propriété appartenant à l'objet auquel le parent datalist est lié.Databases imbriquées dans ASP.net

Est-ce que quelqu'un sait comment je peux y parvenir?

+0

Votre structure de données ressemble-t-elle? – cgreeno

Répondre

1

Je ne connais pas un moyen propre d'archiver cela.

Hack vous pouvez (non) Essayez avec:

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

ou

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

Je ne sais pas comment le faire en ligne, mais si vous crochet dans OnItemDataBound vous pouvez utiliser la le code suivant:

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 

ou en C# (non vérifiée)

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"); 

    } 
} 
Questions connexes