Pregunta

Estoy usando tres webparts.WebPart A crea un valor cuando el usuario hace clic en el botón en WebPart A. WebPart B usa este valor para crear una lista con elementos que el usuario puede seleccionar.WEBPART C utiliza ambos valores para crear una cadena para fines de prueba.

WEBPART B usa esta lista para llenar una caja desplegable.Siempre que se cambie el calificador seleccionado, debe actualizar WebPart C. Esta es la declaración del control.

_documentTypeList = new DropDownList();
_documentTypeList.AutoPostBack = true;
this.Controls.Add(_documentTypeList);

El problema aquí es que usando

_documentTypeList.AutoPostBack = true;

Actualiza la página completa y restablece el valor en WebPart A a NULL.¿Cómo envío el nuevo valor de WebPart B a WebPart C sin perder el valor de WebPart a?Esto sucede todo en 1 página.

¿Fue útil?

Solución

Se pueden realizar los variables del estado de la sesión de ahorro utilizando:

    public string Name
    {
        get
        {
            return Page.Session["SaveName"] as string;
        }
        set
        {
            Page.Session["SaveName"] = value;
        }
    }

Este es un Getter / Setter para guardar / obtener del estado de la sesión

Para usar esto, haga lo siguiente:

Esto obtiene el valor del estado de la sesión (debe estar en el evento de OnPrerender para ver los variables del estado de la sesión)

txtName.Text = Name;

Esto se establece en el estado de la sesión (puede estar en cualquier lugar que desee guardar en el estado de la sesión)

Name = txtName.Text;

para int valud:

cahnge public string Name a public int Name y lo mismo ocurre con cualquier otra cosa como valores de bool ect.

Entonces, se vería así para int:

    public int Name
    {
        get
        {
            return Page.Session["SaveName"] as int;
        }
        set
        {
            Page.Session["SaveName"] = value;
        }
    }

Como se han señalado otros para que se pasen los datos entre WEBPART, debe estar usando el método IIERFACE:

Proporcionar (WebPart Enviar datos) Consumer (WebPart usando ese DATOS) y la interfaz que es la conexión entre las webparts:

Lo anterior trabajará 100% y ahorrará sus valores en la devolución de devolución :)

Solo en caso de que lo necesite;) IV publicó algunos enlaces en las conexiones a continuación.

problemas conectables webpart .................. ....?

y

conexión entre 2 partes web

espero que ayude :)

Otros consejos

¿Has probado if (!Page.IsPostBack) { your code here }?

¿Ha intentado crear una conexión de pieza web personalizada para su propósito?Pasando por su requerimiento puede ser la opción más adecuada

anteriormente las partes web donde se conectan en el siguiente orden.

WebPart A => WebPart B
WebPart B => WebPart C
WebPart A => WebPart C

Esto creó un error si quería llamar a ambos valores en WebPart C cuando cambié el valor en WebPart B. Cada vez que se cambió el valor de WebPart B, se requirió que recargará la página y a finales de recarga a WebPart A. Porque WEBPART A tenía un Valor que se crea en la interacción del usuario y no en la carga de la página se perdió el valor. WEBPART B y WEBPART C se incautó para funcionar sin el valor de WebPart A. Si desea mantener la conexión de WebPart como se describe anteriormente, marque la respuesta de CasharePointMaster.

Porque en mi caso WebPart A crea un token de inicio de sesión único que prefiero no guardarlo en la página. Preferiría mantenerlo con las webparts. Para hacerlo cambié la conexión entre ellos. En su lugar, la conexión usé la siguiente conexión.

WebPart A => WebPart B => WebPart C

WEBPART B guarda el valor de WebPart a y lo proporciona junto con su propio valor en WebPart C. Así es como parece la interfaz de WebParts B.

public interface IWebPartB
{
    string webPartAValue { get; }
    string webPartBValue { get; }
}

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