Domanda

Ho bisogno di creare alcuni controlli dinamici su Page_Load nella webpart utente. Nella webpart del provider ho fatto un po 'di hacking e l'ho preso in modo da poter ottenere un valore di controllo prima che viewstate sia caricato in Page_Init.

Quindi sostanzialmente quello che voglio è che le webpart possano comunicare prima di Page_Load.

[ConnectionConsumer("FormRID Consumer","FormRIDConsumer")]
public void InitializeProvider(MyControl.IFormRID provider)
{
    theProvider = provider;
    FormRID = theProvider.FormRID;
}

Questo metodo non viene chiamato fino a dopo Page_Load. Questo è un grosso problema per me perché Page_Load dei miei consumatori dipende dal fatto che FormRID sia impostato e preciso. Non riesco a spostare il mio codice Page_Load in Page_LoadComplete perché ho bisogno di creare controlli dinamici con viewstate (viewstate non viene ripristinato dopo Page_Load)

Quindi c'è qualche soluzione che posso usare per poter comunicare prima di Page_Load.

È stato utile?

Soluzione 3

Ho finito per dover creare la mia comunicazione webpart.

È risultato molto più pulito di ASP.Net e la comunicazione può avvenire già quando OnInit all'interno delle webpart.

Altri suggerimenti

Hai provato ad iscriverti all'evento Init della web part area e a collocare InitializeProvider () lì? Credo che sia attivato prima degli eventi OnLoad o OnInit di controlli utente e moduli web.

È necessario utilizzare l'evento OnPreRender anziché su Carica, perché onLoad si verifica prima dell'esecuzione della connessione WebPart.

Ecco un esempio di cosa potresti aspettarti utilizzando gli eventi OnLoad e OnPreRender http://blog.mastykarz.nl/web-part-requires-clicking-twice-apply-ok-button-apply-changes/

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