J'utilise des chargements dynamiques de UserControl qui peuvent contenir
eux-même des usercontrols.
Dans le PageInit ou le PageLoad (j'ai essayé les 2) de mon MainUserControl
(le niveau le plus haut de mon arborescence de controles) j'ai le code
standard du style:
System.Web.UI.UserControl oControl = (System.Web.UI.UserControl)
this.LoadControl(sUserControlUrl1);
oControl.ID = "ID1...";
// Chargement dans un place Holder du MainUserControl
this.phContent.Controls.Add(oControl);
Or sur un événement click intervenant dans le MainUserControl, je charge un
autre usercontrol en prenant soint de supprimer le précédent car je souhaite
un remplacement :
if (this.phContent.HasControls())
this.phContent.Controls.Clear();
System.Web.UI.UserControl oControl = (System.Web.UI.UserControl)
this.LoadControl(sUserControlUrl2);
oControl.ID = "ID2...";
// Chargement dans un place Holder du MainUserControl
this.phContent.Controls.Add(oControl);
Le pb posé dans ce cas-là est que ces 2 usercontrols peuvent être
foncièrement différent. L'un peut contenir une datagrid et l'autre pas. Or
lorsque je passe de l'un à l'autre j'ai l'erreur suivante :
"Échec du chargement de viewstate. L'arborescence du contrôle sur lequel
viewstate est chargé doit correspondre à l'arborescence du contrôle qui a
été utilisé pour enregistrer viewstate lors de la demande précédente. Par
exemple, lors de l'ajout dynamique de contrôle, les contrôles ajoutés lors
d'une publication doivent correspondre au type et à la position des
contrôles ajoutés lors de la demande initiale."
Je comprends bien d'ou vient l'erreur, mais hélas j'ai besoin tant que je
reste sur le même usercontrol de conserver le viewstate.
Ma question est alors: y a t'il un moyen d'inhiber le chargement du
viewstate dans le cas ou je passe du usercontrol1 au usercontrol2 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
Le plus simple est de travailler sur la visibilité des contrôles, plutôt que de les créer ou de les supprimer. -- Paul Bacelar MVP VC++
"SD" wrote in message news:
Bonjour,
J'utilise des chargements dynamiques de UserControl qui peuvent contenir eux-même des usercontrols. Dans le PageInit ou le PageLoad (j'ai essayé les 2) de mon MainUserControl (le niveau le plus haut de mon arborescence de controles) j'ai le code standard du style:
System.Web.UI.UserControl oControl = (System.Web.UI.UserControl) this.LoadControl(sUserControlUrl1); oControl.ID = "ID1..."; // Chargement dans un place Holder du MainUserControl this.phContent.Controls.Add(oControl);
Or sur un événement click intervenant dans le MainUserControl, je charge un autre usercontrol en prenant soint de supprimer le précédent car je souhaite un remplacement :
if (this.phContent.HasControls()) this.phContent.Controls.Clear(); System.Web.UI.UserControl oControl = (System.Web.UI.UserControl) this.LoadControl(sUserControlUrl2); oControl.ID = "ID2..."; // Chargement dans un place Holder du MainUserControl this.phContent.Controls.Add(oControl);
Le pb posé dans ce cas-là est que ces 2 usercontrols peuvent être foncièrement différent. L'un peut contenir une datagrid et l'autre pas. Or lorsque je passe de l'un à l'autre j'ai l'erreur suivante :
"Échec du chargement de viewstate. L'arborescence du contrôle sur lequel viewstate est chargé doit correspondre à l'arborescence du contrôle qui a été utilisé pour enregistrer viewstate lors de la demande précédente. Par exemple, lors de l'ajout dynamique de contrôle, les contrôles ajoutés lors d'une publication doivent correspondre au type et à la position des contrôles ajoutés lors de la demande initiale."
Je comprends bien d'ou vient l'erreur, mais hélas j'ai besoin tant que je reste sur le même usercontrol de conserver le viewstate. Ma question est alors: y a t'il un moyen d'inhiber le chargement du viewstate dans le cas ou je passe du usercontrol1 au usercontrol2 ?
Merci par avance de vos réponses.
Cdt
SD
Le plus simple est de travailler sur la visibilité des contrôles, plutôt que
de les créer ou de les supprimer.
--
Paul Bacelar
MVP VC++
"SD" <raspoutine65@hotmail.com> wrote in message
news:OnwMgFZOHHA.324@TK2MSFTNGP06.phx.gbl...
Bonjour,
J'utilise des chargements dynamiques de UserControl qui peuvent contenir
eux-même des usercontrols.
Dans le PageInit ou le PageLoad (j'ai essayé les 2) de mon MainUserControl
(le niveau le plus haut de mon arborescence de controles) j'ai le code
standard du style:
System.Web.UI.UserControl oControl = (System.Web.UI.UserControl)
this.LoadControl(sUserControlUrl1);
oControl.ID = "ID1...";
// Chargement dans un place Holder du MainUserControl
this.phContent.Controls.Add(oControl);
Or sur un événement click intervenant dans le MainUserControl, je charge
un autre usercontrol en prenant soint de supprimer le précédent car je
souhaite un remplacement :
if (this.phContent.HasControls())
this.phContent.Controls.Clear();
System.Web.UI.UserControl oControl = (System.Web.UI.UserControl)
this.LoadControl(sUserControlUrl2);
oControl.ID = "ID2...";
// Chargement dans un place Holder du MainUserControl
this.phContent.Controls.Add(oControl);
Le pb posé dans ce cas-là est que ces 2 usercontrols peuvent être
foncièrement différent. L'un peut contenir une datagrid et l'autre pas. Or
lorsque je passe de l'un à l'autre j'ai l'erreur suivante :
"Échec du chargement de viewstate. L'arborescence du contrôle sur lequel
viewstate est chargé doit correspondre à l'arborescence du contrôle qui a
été utilisé pour enregistrer viewstate lors de la demande précédente. Par
exemple, lors de l'ajout dynamique de contrôle, les contrôles ajoutés lors
d'une publication doivent correspondre au type et à la position des
contrôles ajoutés lors de la demande initiale."
Je comprends bien d'ou vient l'erreur, mais hélas j'ai besoin tant que je
reste sur le même usercontrol de conserver le viewstate.
Ma question est alors: y a t'il un moyen d'inhiber le chargement du
viewstate dans le cas ou je passe du usercontrol1 au usercontrol2 ?
Le plus simple est de travailler sur la visibilité des contrôles, plutôt que de les créer ou de les supprimer. -- Paul Bacelar MVP VC++
"SD" wrote in message news:
Bonjour,
J'utilise des chargements dynamiques de UserControl qui peuvent contenir eux-même des usercontrols. Dans le PageInit ou le PageLoad (j'ai essayé les 2) de mon MainUserControl (le niveau le plus haut de mon arborescence de controles) j'ai le code standard du style:
System.Web.UI.UserControl oControl = (System.Web.UI.UserControl) this.LoadControl(sUserControlUrl1); oControl.ID = "ID1..."; // Chargement dans un place Holder du MainUserControl this.phContent.Controls.Add(oControl);
Or sur un événement click intervenant dans le MainUserControl, je charge un autre usercontrol en prenant soint de supprimer le précédent car je souhaite un remplacement :
if (this.phContent.HasControls()) this.phContent.Controls.Clear(); System.Web.UI.UserControl oControl = (System.Web.UI.UserControl) this.LoadControl(sUserControlUrl2); oControl.ID = "ID2..."; // Chargement dans un place Holder du MainUserControl this.phContent.Controls.Add(oControl);
Le pb posé dans ce cas-là est que ces 2 usercontrols peuvent être foncièrement différent. L'un peut contenir une datagrid et l'autre pas. Or lorsque je passe de l'un à l'autre j'ai l'erreur suivante :
"Échec du chargement de viewstate. L'arborescence du contrôle sur lequel viewstate est chargé doit correspondre à l'arborescence du contrôle qui a été utilisé pour enregistrer viewstate lors de la demande précédente. Par exemple, lors de l'ajout dynamique de contrôle, les contrôles ajoutés lors d'une publication doivent correspondre au type et à la position des contrôles ajoutés lors de la demande initiale."
Je comprends bien d'ou vient l'erreur, mais hélas j'ai besoin tant que je reste sur le même usercontrol de conserver le viewstate. Ma question est alors: y a t'il un moyen d'inhiber le chargement du viewstate dans le cas ou je passe du usercontrol1 au usercontrol2 ?