Pregunta

Actualmente estoy usando 3 partes web que están conectadas (WebPart A conectadas a B, B conectadas a C). El problema que establece en la conexión entre B y C. WEBPART B es un proveedor y un consumidor y solo contiene una caja de Dropbox con algunas variables. El SedotedItem de este Dropbox es el valor proporcionado. Este es el LetNetProvider en el código que estoy usando en WebPart b.

[ConnectionProvider("DropboxValue", "dbv")]
public IDropBoxValue provider()
{
     return this;
}

Este es el conjunto de discos que estoy usando en WebPart c.

[ConnectionConsumer("DropboxValue", "dbv")]
public void consumer(IDropBoxValue providerInterface)
{
     _provider = providerInterface;
}

En la primera carga de la página que se selecciona automáticamente un DropboxValue y WEBPART c usa esta variable para crear un SpGridView con datos. Ahora, si cambio esta variable, seleccionando un nuevo elemento de DropBox WebPart C no responde a él. De hecho, si ejecuto el proyecto en la depuración, no se llama nada de WebPart C.

Entonces, ¿por qué WEBPART c no responde a los cambios en WebPart B?

EDITOR EXTRA Siempre que cambie el calculamiento seleccionado en WebPart B, cambia su texto en "No se conecta la parte web del proveedor". Este error es creado por mí y es lanzado cuando

if (_Provider == null)

_provider es la interfaz del proveedor de un proveedor.

¿Fue útil?

Solución

El error en mi caso se encuentra en el uso de CreatechildControls y las funciones de OnPrerender.Llamé al proveedor en CreatechildControls mientras debería haber sido llamado en la función OnPrerender.

Si llama a una página web diferente en el CreatechildControls, es posible que no se hayan iniciado losControls createchildControles de ese WebPart.Cuando OnPrerender se llama todas las funciones de CreatechildControl de todas las partes web, se han llamado.Y así, en el momento en que OnPrerender se llama que todas las partes web en la página actual se existen.

Licenciado bajo: CC-BY-SA con atribución
scroll top