Dans certains cas, il est interressant de récuperer le rendu, c'est à dire le code html, qu'un controle génére.
Je me suis servis de cette astuce, dans ma source sur le clientCallBack (
http://www.aspfr.com/code.aspx?id=31245) en effet, lors du retour coté client du CallBack, je ne peux pas ecrire directement du HTML dans la page, mais je dois renvoyer une string, puis du javascript ecrit le code HTML dans la page.
Il existe aussi plein d'autres cas pour lesquels ca devrait servir.
Le fonctionnement du code n'a rien d'extraordinaire, j'ecris le rendu dans un stringwriter via la méthode RenderControl de l'objet Control
Source / Exemple :
Dim sw As New System.IO.StringWriter()
Dim htw As New HtmlTextWriter(sw)
Me.LeControl.RenderControl(htw) 'avec LeControl, le control que vous avez bien sur instancié
htw.Flush()
return sw.ToString()
Conclusion :
Des problèmes, des remarques ?
la section commentaire est la pour ca :)
8 févr. 2007 à 17:34
override void VerifyRenderingInServerForm(){
// on ne lance jamais d'exception !
}
Si tu regardes dans Reflector tu verras comment ca fonctionne et qui appelle la méthode, tu y decouvriras pleins de choses interessante.
8 févr. 2007 à 17:17
Merci à toi d'avoir pris le temps de "fouiller"
Nath.
8 févr. 2007 à 17:03
8 févr. 2007 à 16:43
J'ai testé et vérifié, c'est exactement le comportement que j'ai constaté, ligne par ligne le rendu html t'envoie un tableau (sans mise en form, tu demandes le rendu du gridview : tu lèves une exception le gridview doit être dans "la balise form runat=server" ... (il y est déjà !)
Aucun problème avec le repeater... ça fonctionne parfaitement.
Si tu trouves la solution pour le gridview. Fais moi signe Merci
Nath
8 févr. 2007 à 12:00
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.