OVH Cloud OVH Cloud

Pb de Viewstate

2 réponses
Avatar
Sylvain
Bonjour,

J'ai une page dans laquelle se trouve une combo statique, le reste de la
page étant entièrement dynamique.
En effet selon l'élément que je sélectionne dans la combo, je charge un
template de saisie différent.
Je rencontre le pb suivant, quand je change d'élément dans la combo, j'ai
une erreur du viewstate disant que les contrôles doivent être identiques, à
la même place...( ce qui est compréhensible sachant que j'ai changé de
template) mais du coup commen puis je résoudre mon pb sachant que je dois
laisser ma propriété ViewState à Enabled.

Merci d'avance pour votre aide.

--
Sylvain Duvernay

2 réponses

Avatar
Paul Bacelar
Rendre les controles visibles ou invisibles au lieu de les créer
dynamiquement, par exemple.
--
Paul Bacelar

"Sylvain" wrote in message
news:
Bonjour,

J'ai une page dans laquelle se trouve une combo statique, le reste de la
page étant entièrement dynamique.
En effet selon l'élément que je sélectionne dans la combo, je charge un
template de saisie différent.
Je rencontre le pb suivant, quand je change d'élément dans la combo, j'ai
une erreur du viewstate disant que les contrôles doivent être identiques,
à
la même place...( ce qui est compréhensible sachant que j'ai changé de
template) mais du coup commen puis je résoudre mon pb sachant que je dois
laisser ma propriété ViewState à Enabled.

Merci d'avance pour votre aide.

--
Sylvain Duvernay




Avatar
Cyril S.
Le ViewState d'un controle est récupéré par rapport à son Id.

Donc lorsque tu changes de type de controle, tu charges un nouveau controle
mais qui a le même Id que le controle chargé juste avant, et lorsque ASP.NET
recharge les ViewState, il cherche le controle avec l'Id du controle et vu
qu'il a changer de type (et donc pas les meme propriété) bin il explose.

Il faut faire en sorte que le nom du controle chargé dynamiquement change en
fonction du type et tu n'auras plus ce genre de problème. Genre :

string controlToLoad = "MyUserControl1";
Control c = Page.LoadControl (controlToLoad + ".ascx");
c.Id = MyUserControl1;

--
CS


"Paul Bacelar" wrote:

Rendre les controles visibles ou invisibles au lieu de les créer
dynamiquement, par exemple.
--
Paul Bacelar

"Sylvain" wrote in message
news:
> Bonjour,
>
> J'ai une page dans laquelle se trouve une combo statique, le reste de la
> page étant entièrement dynamique.
> En effet selon l'élément que je sélectionne dans la combo, je charge un
> template de saisie différent.
> Je rencontre le pb suivant, quand je change d'élément dans la combo, j'ai
> une erreur du viewstate disant que les contrôles doivent être identiques,
> à
> la même place...( ce qui est compréhensible sachant que j'ai changé de
> template) mais du coup commen puis je résoudre mon pb sachant que je dois
> laisser ma propriété ViewState à Enabled.
>
> Merci d'avance pour votre aide.
>
> --
> Sylvain Duvernay
>
>