Question

J'ai deux parties Web qui communiquent. Le fournisseur ne peut pas donner une valeur (un RID) au consommateur jusqu'à au moins l'événement Page_Load du fournisseur. Ainsi, le consommateur ne peut pas connaître le RID dont il a besoin tant qu'après Page_Load. Donc, j'ai accroché à Page_LoadComplete. Maintenant, il y a un problème. Le consommateur crée des contrôles dynamiques basés sur ce RID.

Maintenant. Ces contrôles créés dynamiques sont créés après Page_Load. Par conséquent, leur état d'affichage n'est pas restauré (les valeurs des contrôles dynamiques créés dans Page_Load sont toutefois restaurées).

Donc, en gros, ce dont j'ai besoin, c'est d'un moyen de restaurer manuellement Viewstate sur un contrôle ou d'obtenir la valeur du contrôle à partir d'une variable POST ou son équivalent en C #.

De plus, si je pouvais obtenir la valeur d'un contrôle chez Page_Init, cela fonctionnerait aussi.

Était-ce utile?

La solution

Toutes les informations renvoyées par une publication dans les paires clé / valeur Request.Form. Si vous cochez cette case et recherchez l'ID de contrôle dans les clés, vous pouvez obtenir la valeur sans consulter l'état d'affichage.

Vous devrez probablement parcourir chaque clé et rechercher celle qui contient le nom du contrôle, car celle-ci sera l'ID client et non l'ID spécifié.

Autres conseils

Si les contrôles sont dynamiques, ils ne seront pas dans ViewState tant qu’une publication n’aura pas lieu. Ainsi, ViewState n'est pas utilisable lors du chargement initial, à moins que vous ne les ajoutiez vous-même à ViewState.

ViewState.Add("myRID", RID)

Ou vous pouvez l'enregistrer dans SessionState, sans surcharger ViewState, car ViewState a tendance à devenir beaucoup trop gros. Je voudrais aller avec SessionState.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top