2010-08-06 2 views
1

J'utilise habituellement des expressions comme ceDatabinding documentation Container

CommandArgument='<%# Container.DataItemIndex.ToString() %> ' 

Mais je ne pouvais pas trouver conteneur dans le msdn, u peut aider?

Merci

Répondre

2

Container est un mot-clé qui s'applique uniquement aux expressions de liaison de données et fait référence au conteneur de dénomination.

Voir ce de MSDN (Comment: Accès membres de conteneurs Attribution d'un nom d'un contrôle):

Dans l'expression de liaison de données, utilisez le mot-clé conteneur, qui renvoie une référence au conteneur.

Et this (Utilisation de la propriété NamingContainer pour déterminer un conteneur de contrôle de dénomination):

... le mot-clé conteneur, qui est disponible uniquement dans le code en ligne (qui est, dans un < déclarative% #%> expression) ...

1

Container est habituellement représentée par un objet qui implémente l'interface INamingContainer. Cependant, ce n'est pas une règle stricte. Vous pouvez lire à ce sujet dans le MSDN:

http://msdn.microsoft.com/en-us/library/bda9bbfx(VS.71).aspx

Si vous voulez connaître le type de l'objet conteneur, je vous suggère d'utiliser l'approche suivante:

définir l'expression de liaison suivante:

CommandArgument='<%# GetCommandArgument(Container)%> 

et définir également la méthode suivante dans le code de la page:

protected string GetCommandArgument(object container) { 
    return string.Empty; 
} 

Définissez le point d'arrêt dans la méthode de la page et vérifiez le type du conteneur dans QuickWatch. Hope, this helps ...