jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 8 févr. 2007 à 17:34
Il me semble bien que si, il suffit de faire un override sur le page_load et de le laisser vide, c'est cette méthode qui vérifie si le controle est dans un form.
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.
armoramour
Messages postés5Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 8 février 2007 8 févr. 2007 à 17:17
Je ne suis pas certaine de récupérer mon "tableau mis en forme et avec les données liées" de cette façon : la récupération des contrôles étant faite en pre-init... m'enfin, lorsque j'aurais un peu de temps je vérifierai cette formule car elle est intéressante d'un point de vue "générique".
Merci à toi d'avoir pris le temps de "fouiller"
Nath.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 8 févr. 2007 à 17:03
armoramour
Messages postés5Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 8 février 2007 8 févr. 2007 à 16:43
Je n'arrive plus à retrouver "mes sources" microsoft confirmant que les gridview, formview, datalist donne le "rendu html" seulement ligne par ligne et sous forme <tr> <td> </td> </tr>...
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
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 8 févr. 2007 à 12:00
Hum, ce que tu me dis me parait étrange ... si tu fais un render sur un gridview je pense qu'il le fait complétement, il faudrais que je regarde d'avantages.
armoramour
Messages postés5Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 8 février 2007 8 févr. 2007 à 11:53
Merci pour ta réponse. J'ai trouvé la solution cette nuit : je voulais récupérer le rendu "complet" d'un gridview, ce qui n'est pas possible (mais je ne le savais pas) le rendu de se contrôle se faisant ligne par ligne, aussi pour pallier à ce problème, j'ai construit un tableau dynamique à l'aide de "repeater" et j'obtiens exactement ce que je voulais : ne pas créer à la "main" ce qui existait déjà.
La méthode RenderControl avec GridView fonctionne ainsi tab.Rows(x).RenderControl(flux)
Merci encore Nath
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 8 févr. 2007 à 11:40
Bonjour il suffit simplement de mettre ton controle dans une balise form, sinon cherche sur ce site j'ai déjà parlé de ce problème et expliqué comment cela fonctionne.
armoramour
Messages postés5Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 8 février 2007 7 févr. 2007 à 01:31
Bonjour,
Testé avec une page construite en utilisant une page "master"... l'appel à RenderControl provoque une erreur de type "il faut que le contrôle soit inclus dans un form avec runat=server"...
Je n'arrive pas à contourner ce problème.
Bien à vous
Jamesbound
Messages postés17Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 8 mai 2007 17 janv. 2006 à 19:40
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
8 févr. 2007 à 11:53
La méthode RenderControl avec GridView fonctionne ainsi tab.Rows(x).RenderControl(flux)
Merci encore Nath
8 févr. 2007 à 11:40
7 févr. 2007 à 01:31
Testé avec une page construite en utilisant une page "master"... l'appel à RenderControl provoque une erreur de type "il faut que le contrôle soit inclus dans un form avec runat=server"...
Je n'arrive pas à contourner ce problème.
Bien à vous
17 janv. 2006 à 19:40