ASP: Mi campo de datos es nulo desde el segundo Page_Load ()

Mi código_detrás es:

public partial class Question2 : System.Web.UI.Page
{
    private SqlDataAdapter dataAdapter;
    private DataTable table;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            table = new DataTable();
            //And pull the data from my DB to the table
        }
    }

Tengo la intención de almacenar mis datos (la 'tabla') en el campo de la clase PERO después de hacer clic en cualquier botón de mi página. Descubrí que se vuelve a llamar a Page_Load() y todos mis campos de datos se han ido. Son 'nulos'.

Estoy realmente confundido con lo que sucede O_O. Solo necesitaba guardar mi mesa para usarla más adelante. Pero ¿por qué están perdidos? ¿Cuándo se pierde? Por favor ayuda, gracias.

preguntado el 28 de julio de 12 a las 14:07

1 Respuestas

En ASP.NET, cada solicitud al servidor creará una instancia (nueva) de la clase de página, por lo que en la carga de la segunda página tendrá un nuevo objeto nuevo, no el que tenía en la primera solicitud.

Puede almacenar sus datos en el diccionario de estado de la aplicación si se compartió entre todos los usuarios o el diccionario de estado de sesión si no lo es.

// Store it:
Application["myTable"] = ...;

// Get it back on a new request:
DataTable table = (DataTable)Application["myTable"];

Respondido 28 Jul 12, 14:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.