Domanda

Ho due web part che comunicano. Il provider non può assegnare un valore (un RID) al consumatore fino almeno all'evento Page_Load del provider. Quindi il consumatore non può conoscere il RID di cui ha bisogno fino a dopo Page_Load. Quindi, mi sono agganciato a Page_LoadComplete. Ora c'è un problema. Il consumatore crea controlli dinamici basati su questo RID.

Ora. Questi controlli dinamici creati vengono creati dopo Page_Load. Pertanto, il loro viewstate non viene ripristinato (i controlli dinamici creati in Page_Load hanno comunque ripristinato i loro valori).

Quindi, in sostanza, ciò di cui ho bisogno è un modo per ripristinare manualmente viewstate su un controllo o per ottenere il valore del controllo da una variabile POST o l'equivalente in C # ..

Inoltre, se potessi ottenere il valore di un controllo su Page_Init, anche questo funzionerebbe.

È stato utile?

Soluzione

Tutte le informazioni restituite da un post nelle coppie chiave / valori Request.Form. Se controlli lì e cerchi l'id di controllo nelle chiavi, puoi ottenere il valore senza guardare attraverso lo stato di visualizzazione.

Probabilmente dovrai cercare ogni chiave e cercare quale chiave contiene il nome del controllo, perché la chiave sarà l'ID client e non l'ID specificato.

Altri suggerimenti

Se i controlli sono dinamici, non saranno in ViewState fino a quando non si verifica un postback. Pertanto ViewState non è utilizzabile al caricamento iniziale, a meno che non vengano aggiunti a ViewState da soli.

ViewState.Add("myRID", RID)

Oppure puoi salvarlo in SessionState e non sovraccaricare ViewState poiché ViewState tende comunque a diventare troppo grande. Vorrei andare con SessionState.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top