2010-07-29 7 views
1

Je récupère une liste d'un service WCF et je veux la définir comme source de données pour une grille. Quand j'ai databind j'obtiens l'erreur que "Deviceheader" n'est pas une propriété de someObject.Asp.net puis-je créer une base de données de champs au lieu de propriétés?

<td><%# Eval("Deviceheader.DeviceID") %></td> 

C'est vrai, ce n'est pas une propriété, il est un champ public

public class someObject(){ 

    public DeviceHeaderDc Deviceheader; 

} 

Comment puis-je à ces domaines DataBind car ils ne sont pas mis en œuvre en tant que propriétés? Aucune suggestion? Je voudrais éviter d'écrire des objets wrapper avec des implémentations de propriétés si cela est possible. Si quelqu'un a des conseils ou des astuces que je peux utiliser ici, je suis tout ouïe.

Cheers,
~ ck

Répondre

2

Il est préférable d'écrire un événement RowDataBound pour la grille. Utilisez un contrôle littéral ou un serveur lié à votre balise TD. Ensuite, vous pouvez utiliser tout ce que vous voulez lier au champ. Je peux donner un exemple si tu veux.

+1

Il y avait des centaines d'objets dans ce cas, la conversion en AutoProperties n'était donc pas faisable. Cela a très bien fonctionné pour ma situation. Merci! – Hcabnettek

1

Pourquoi ne pas les définir comme des propriétés d'auto comme si

public DeviceHeaderDc Deviceheader { get; set;} 

De cette façon, le champ de support sera généré automatiquement qui vous donne la possibilité de changer le dos plus tard si tu veux.

+0

Oui, je suis d'accord, il n'y a aucune raison de ne pas implémenter le champ en tant que propriétés, en particulier depuis l'introduction des propriétés automatiques. –

Questions connexes