ASP.NET Répéteur ItemDataBound qui se passe APRÈS le pré-rendu de l'événement?
J'ai un contrôle repeater sur un ASP.NET 2.0 formulaire web.
Comme je le comprendre, toutes les données de la page des contrôles liés incendie de leurs événements de liaison se situe quelque part entre le Page_Load
et la Page_PreRender
événements.
Cependant, mon repeater ItemDataBound
événement semble être le cas APRÈS la PreRender
événement.
Comment est-ce si et est-il possible que je peux accéder à la page des commandes APRÈS tous les ItemDataBound
événements ont mis le feu?
Mises à jour:
- Le relais utilise un
ObjectDataSource
avec leDataSourceID
déclarative situé dans le contrôle repeater. - La source de données d'ID ou de l'objet n'est pas modifié lors de la page de cycle de vie.
OriginalL'auteur Matias Nino | 2008-10-20
Vous devez vous connecter pour publier un commentaire.
Déclarative de la liaison de données (source de données spécifiée par la propriété DataSourceID) se produit plus tard que le pré-rendu de l'événement. Le comportement que vous observez est par la conception. Si ce n'est pas ce que vous avez besoin de vous devrait explicitement databind votre contrôle et appeler sa méthode DataBind.
J'ai testé avec une simple page. Voici l'ordre dans lequel les événements ont été exécutées: Page_Load Page_PreRender Repeater1_DataBinding Repeater1_ItemDataBound Repeater1_PreRender en Fonction de Réflecteur de la Répétition.EnsureDataBound est appelé à Répétition.OnPreRender.
Vous avez raison! Merci! Ressemble le répéteur n'est pas votre moyenne de contrôle de liaison de données!
OriginalL'auteur Atanas Korchev
Êtes-vous liant spécifiquement à votre répéteur (myRepeater.DataBind();) dans votre fichier code-behind (par exemple à l'intérieur de la Page_Load() de l'événement)?
Avez-vous vérifié le ASP.NET les événements de cycle de vie? Désolé si vous savent déjà cela, mais juste au cas où: http://msdn.microsoft.com/en-us/library/ms178472.aspx
Espère que cela aide.
Ricardo.
OriginalL'auteur Ricardo Villamil
Il y a aussi un bon post à propos de répétition de l'événement dans le blog suivant :
LinkButton ,Étiquette à l'intérieur de Répétition - ASP.NET
OriginalL'auteur
Je pense que j'ai eu une situation similaire, et mon option était de FORCER les contrôles à se lier eux-mêmes, en appelant EnsureChildControls ou une méthode semblable.
OriginalL'auteur hova