2009-06-01 7 views
1

je une classe qui ressemble à ceci:Liaison d'un DataList à la méthode d'un objet au lieu d'une propriété

public class Person 
{ 
    public string Name { get; set; } 

    public string Thing() { 
    ... 
    } 

    ... 

} 

Si j'ai un IList<Person> que j'utilise comme source de données pour un contrôle DataList et DataList ressemble à ceci:

<asp:DataList runat="server" RepeatColumns="1" ID="Profiles"> 
    <ItemTemplate>         
     <%#Eval("Name") %>   
    </ItemTemplate> 
</asp:DataList> 

Comment puis-je remplacer la propriété Name de la source de données avec un appel à la méthode de l'objet source de données Thing()?

Répondre

3
<%#((Person)Container.DataItem).Thing()%> 
1

Utilisez les propriétés. La propriété sera "Nom" (ou autre) et le "Getter" sur cette propriété sera la méthode que vous souhaitez utiliser pour générer la valeur. Alors que peut appeler une fonction d'ici, je pense qu'il serait préférable de concevoir une propriété.

+0

Je ne peux pas simplement "utiliser une propriété" - le code que j'ai posté a été simplifié dans le but de clarifier la question. En réalité, changer la méthode pour une propriété n'est pas une option viable. – kristian

+1

Ok - juste essayer d'être utile car c'est, généralement, la route préférée. Bonne chance avec le reste de votre problème. –