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="";
}
}
FELICIDADES EXCELENTE DESARROLLO ME SIRVIO INCREIBLEMENTE EN UNA APP MAESTRO DETALLE.
ResponderEliminarRICARDO CHAHIN
EL SALVADOR.
Muchisimas gracias, me sirvio de maravilla para lo que necesitaba.
ResponderEliminarFelicidades
Excelente ejemplo, haces ver el ingreso de registros a un gridview como si fuera sumar a+b=c
ResponderEliminarmuy bueno saes la pase buscando casi como una noche y grasias por este aporte
ResponderEliminaruna 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
ResponderEliminarwoooow muchísimas gracias, llevaba bastante tiempo intentando hacer esto, excelentísimo aporte :D :D
ResponderEliminarMe salvaste la chamba, llevaba dos dias sin poder solucionar este problema , mil gracias por el aporte
ResponderEliminarGracias un excelente a porte me asido de mucha ayuda
ResponderEliminarpor fin un ejemplo mas claro gracias broo
ResponderEliminarCómo se llena un gridview con un datatable
ResponderEliminarHola Alejandro, de la siguiente manera:
EliminarGridView.DataSource = DataTable;
GridView.DataBind();
Gracias Maestro !!!
ResponderEliminar👍
Eliminar