La web part dei consumatori non risponde alle modifiche nella web part del provider
-
10-12-2019 - |
Domanda
Attualmente sto usando 3 parti Web collegate (WebPart A collegata a B, B collegata a c). Il problema stabilisce nella connessione tra B e C. WebPart B è un provider e un consumatore e contiene solo un dropbox con alcune variabili. Il selectem da questa casella Dropbox è il valore fornito. Questa è la connessione Provider nel codice che sto usando in WebPart b.
[ConnectionProvider("DropboxValue", "dbv")]
public IDropBoxValue provider()
{
return this;
}
.
Questo è il collegamentoconsumer che sto usando in WebPart c.
[ConnectionConsumer("DropboxValue", "dbv")]
public void consumer(IDropBoxValue providerInterface)
{
_provider = providerInterface;
}
.
Nel primo carico della pagina A DropboxValue viene selezionato automaticamente e WebPart C utilizza questa variabile per creare una SPGRIDVIEW con i dati. Ora se cambio questa variabile selezionando un nuovo elemento da Dropbox WebPart C non risponde ad esso. Infatti se eseguo il progetto nel debug, nulla viene chiamato da WebPart c.
Allora perché WebPart c non risponde alle modifiche in WebPart B?
Extra Modifica
Ogni volta che modifico laValoma selezionata in WebPart B cambia il suo testo su "Nessuna parte del fornitore connesso". Questo errore è stato creato da me e viene lanciato quando
.
if (_Provider == null)
_Provider è l'interfaccia di WebPart a fornitore.
Soluzione
L'errore nel mio caso sta utilizzando i creatiChildControls e le funzioni OnPrerender.Ho chiamato il fornitore nei creatiChildcontrols mentre avrebbe dovuto essere chiamato nella funzione OnpreRender.
Se si chiama un WebPart diverso nei createchildControls è possibile che i creatiChildControls di quel WebPart non siano stati avviati.Quando OnPrerender è chiamato tutte le funzioni di createChildControl di tutti i WebParts sono state chiamate.E così al momento in cui Onprerender è chiamato tutti i WebParts sulla pagina corrente scisterà.