viernes, 1 de julio de 2016

Agregar datos de un Textbox a un Gridview en Asp.Net con C#

Esta pregunta lo hizo un usuario de un foro en el que participo, mi respuesta fue el código que hoy quiero compartir con ustedes. Bueno tenemos dos opciones, utilizar Session o ViewState, voy a utilizar Session para almacenar y recuperar los datos,

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                cargarGrilla();
            }
        }

        protected void OnClick_btnAgregar(object sender, EventArgs e)
        {
            adicionarFila();
        }

        private void cargarGrilla()
        {
            //Id, Nombre, Apellido
            Alumno a = new Alumno();
            DataTable dt = new DataTable();

            //consulta que me permite traer de la BD la lista de alumnos
            dt = a.Alumno_Listar();

            //Guardamos los datos en una variable de session
            Session["dt"] = dt;

            //Asignamos el dt al gridview
            gvPrueba.DataSource = dt;
            gvPrueba.DataBind();
        }

        private void adicionarFila()
        {
            DataTable dt = new DataTable();
            dt = (DataTable) Session["dt"];

            //Insertamos los nuevos registros
            dt.Rows.Add(tbId.Text, tbNombre.Text, tbApellido.Text);

            //Asignamos el dt al gridview
            gvPrueba.DataSource = dt;
            gvPrueba.DataBind();

             //Actualizamos el dt de la variable de sessión
            Session["dt"] = dt;

        }