Agregar registros a un GridView utilizando un DataTable

Lo que pretendemos lograr es poder agregar registros a un GridView utilizando un DataTable que contenga toda la información que queremos mostrar.

Vamos a utilizar tres cajas de texto, uno para ingresar la clave del usuario, uno para ingresar el nombre del usuario y por último uno para ingresar el teléfono del usuario.

Utilizaremos un botón para agregar el registro y un GridView donde mostraremos los usuarios que vayamos agregando.

Lo primero que debemos hacer es crear el DataTable donde guardaremos la información, haremos la declaración del DataTable en el Page_Load de la página.

VB NET

Protected Sub Page_Load(...) Handles Me.Load

'Revisamos que no sea un refresh
If Not IsPostBack Then

'Creamos el DataTable
Dim DT As New DataTable
DT.Columns.Add("Clave", Type.GetType("System.String"))
DT.Columns.Add("Nombre", Type.GetType("System.String"))
DT.Columns.Add("Telefono", Type.GetType("System.String"))

'Guardamos la información en una variable de sesión
Session("DT") = DT

'Asignamos el DT al gridview (en este momento el DT está vacio)
dgvListado.DataSource = DT
dgvListado.DataBind()

End If
End Sub

C#

protected void Page_Load(object sender, EventArgs e)
{
//Revisamos que no sea un refresh
if (!IsPostBack)
{

//Creamos el dataTable
DataTable DT = new DataTable();
DT.Columns.Add("Clave", Type.GetType("System.String"));
DT.Columns.Add("Nombre", Type.GetType("System.String"));
DT.Columns.Add("Telefono", Type.GetType("System.String"));

//Guardamos la información en una variable de sesión
Session["DT"] = DT;

//Asignamos el DT al gridview (en este momento el DT esta vacio
dgvListado.DataSource = DT;
dgvListado.DataBind();

}
}

Y en el evento Click del boton de Agregar pondremos la rutina que agregará el registro al DataTable que posteriormente se mostrará en el GridView.

VB NET

Protected Sub btnAgregar_Click(...) Handles btnAgregar.Click

'Leemos la información
Dim strClave As String = txtClave.Text.Trim
Dim strNombre As String = txtNombre.Text.Trim
Dim strTelefono As String = txtTelefono.Text.Trim
'Leemos el dataTable
Dim DT As DataTable = Session("DT")

'Insertamos el registro
DT.Rows.Add(strClave, strNombre, strTelefono)

'Asignamos el DT al gridview
dgvListado.DataSource = DT
dgvListado.DataBind()

'Actualizamos el DataTable en la variable de session
Session("DT") = DT

'Limpiamos la pantalla
txtClave.Text = ""
txtNombre.Text = ""
txtTelefono.Text = ""
End Sub

C#

protected void btnAgregar_Click(object sender, EventArgs e)
{
//Leemos la información
string strClave = txtClave.Text;
string strNombre = txtNombre.Text;
string strTelefono = txtTelefono.Text;

//Leemos el datatable
DataTable DT = new DataTable();
DT = (DataTable) Session["DT"];
//Insertamos el registro
DT.Rows.Add(strClave,strNombre,strTelefono);
//Asignamos del DT al gridview
dgvListado.DataSource=DT;
dgvListado.DataBind();

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

//Limpiamos la pantalla
txtClave.Text="";
txtNombre.Text="";
txtTelefono.Text="";

}
}

Comentarios

  1. FELICIDADES EXCELENTE DESARROLLO ME SIRVIO INCREIBLEMENTE EN UNA APP MAESTRO DETALLE.

    RICARDO CHAHIN
    EL SALVADOR.

    ResponderEliminar
  2. Muchisimas gracias, me sirvio de maravilla para lo que necesitaba.

    Felicidades

    ResponderEliminar
  3. Excelente ejemplo, haces ver el ingreso de registros a un gridview como si fuera sumar a+b=c

    ResponderEliminar
  4. muy bueno saes la pase buscando casi como una noche y grasias por este aporte

    ResponderEliminar
  5. una consulta jaime como hago que a la hora de cargar el formulario me aparezca el datgridview solo con la cabezara, por al cargar el fromulario no me aparecere el datagridview

    ResponderEliminar
  6. woooow muchísimas gracias, llevaba bastante tiempo intentando hacer esto, excelentísimo aporte :D :D

    ResponderEliminar
  7. Me salvaste la chamba, llevaba dos dias sin poder solucionar este problema , mil gracias por el aporte

    ResponderEliminar
  8. Gracias un excelente a porte me asido de mucha ayuda

    ResponderEliminar
  9. por fin un ejemplo mas claro gracias broo

    ResponderEliminar
  10. Cómo se llena un gridview con un datatable

    ResponderEliminar
    Respuestas
    1. Hola Alejandro, de la siguiente manera:
      GridView.DataSource = DataTable;
      GridView.DataBind();

      Eliminar

Publicar un comentario

Entradas populares de este blog

Validar registros de un DataTable

Agregar imágenes a los CommandFields