Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   Crear filas nuevas en un datatable con un gridview (http://www.forosdelweb.com/f78/crear-filas-nuevas-datatable-con-gridview-496210/)

YTOTAL 07/06/2007 11:13

Crear filas nuevas en un datatable con un gridview
 
Buenos dias para todos

Me podrian ayudar por favor con lo siguiente lo que necestio es que cuando presio un boton se me agregue una nueva fila a mi datatable y se conserve la proxima vez que vuelva a presionar se agregue una nueva

Gracias

moNTeZIon 07/06/2007 14:55

Re: Crear filas nuevas en un datatable con un gridview
 
Para agregar una fila a un datatable:
Código:

Dim dRow as DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pipi"
[...]
miDataTable.Rows.Add(dRow)

Con esto ya lo tendrías. Y esto lo que tiene que resultar es con tu propósito, cada vez que se ejecute ese código, se le agrega una fila a tu DataTable.
Espero te sirva.
Saludos.

YTOTAL 07/06/2007 16:11

Re: Crear filas nuevas en un datatable con un gridview
 
PRIMERO QUE TODO MUCHAS GRACIAS POR RESPONDER
MIRA YA INTENTE LO QUE ME DIJISTE YO YA HABIA ECHO ALGO SIMILAR PERO ME SALE EL SIGUIENTE ERROR

Column 'Columna1' does not belong to table .

SI DEPRONTO SABES QUE ES ESPERO QUE ME PUEDAS AYUDAR

moNTeZIon 08/06/2007 01:43

Re: Crear filas nuevas en un datatable con un gridview
 
Te puse "Columna1" a modo de ejemplo, hombre!
Tu debes saber cómo se llaman tus columnas :-)
Si no, también tienes la opción de referenciarlas por numero de índice, y no por nombre...
Un saludo!

guitar24 08/06/2007 02:14

Re: Crear filas nuevas en un datatable con un gridview
 
hola yo tengo el mismo problema, el usuario escoge los valores en unos combos y cada vez q escoge uno se insertaría en una tabla dinámica, pero no me guarda el anterior combo escogido. ¿Cómo se puede hacer esto?

moNTeZIon 08/06/2007 07:43

Re: Crear filas nuevas en un datatable con un gridview
 
Hola guitar24.
Demasiado genérica tu pregunta, en mi opinión.
Arriba expuse cómo añadir una Row a un DataTable. Y creo que eso ya lo teneis claro, porqué el code es simple.
Intenta concretar donde tienes el problema. Es al obtener el dato elegido en el combo? o cuál es el problema exactamente?
Venga, un saludo!

YTOTAL 08/06/2007 07:57

Re: Crear filas nuevas en un datatable con un gridview
 
Pero por supuesto es que mis columnas se llaman asi las puse con tu ejemplo
como te dije yo intente algo similar pero me sale el mismo error con las columnas ya sea con tu nombre con el que sea.

Un saludo,

moNTeZIon 08/06/2007 08:21

Re: Crear filas nuevas en un datatable con un gridview
 
Hola YTOTAL.
El ejemplo no crea columnas, solo las referencia obviando que se llaman así.
Me pregunto si el problema será que partes de un DataTable vacío, acabado de declarar.
En tal caso, tienes que "definir" sus columnas.
esto se hace así:
Código:

Dim miDataTable As New DataTable
miDataTable.Columns.Add("Columna1")
miDataTable.Columns.Add("Columna2")
[...]

Y luego si, con el codigo de arriba se le agregan filas a este DataTable.
A ver si hay suerte!
De todas formas, siempre es bueno mostrar vuestro código, así vemos un poco dónde puede estar la cosa.
Suerte!

YTOTAL 08/06/2007 08:43

Re: Crear filas nuevas en un datatable con un gridview
 
Muchas gracias nuevamente mira ya lo declare como me dijiste y tienes toda la razon se me olvido declarar las columnas pero yo lo habia echo asi, en fin vuelvo a mi problema inicial cuando presiono un boton voy al metodo donde supuestamente deberia crar las nuevas filas el cual tengo con tu ejemplo
ahora en el grid se crea la primera fila pero cuando vuelvo a presionar no pasa nada no se crea una segunda fila en el datagridview

este es el metodo
miDataTable.Columns.Add("Columna1")
miDataTable.Columns.Add("Columna2")

Dim dRow As DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pP"

miDataTable.Rows.Add(dRow)
GridView2.DataSource = miDataTable
GridView2.DataBind()

moNTeZIon 08/06/2007 08:54

Re: Crear filas nuevas en un datatable con un gridview
 
mmm... creas las columnas en el momento de agregar una fila?
Yo pienso que el DataTable ya deberías tenerlo creado y definido.
Y en este método solamente agregarle una fila...
Pero todo esto es para guardar en base de datos? o para que?
Cada vez que vuelves de un postback la cosa empieza de nuevo, por eso siempre tienes una sola fila.

YTOTAL 08/06/2007 09:37

Re: Crear filas nuevas en un datatable con un gridview
 
si creo las columnas en el momento de agregar la fila pero es que si no lo hago en el mismo metodo me sale el error de que no conoce ese nombre de columna cuando lo hago en un metodo diferente el que te mostre, ahora el datatable ya esta creado previamente no es problema

encuanto a lo que si es para guardarlo en la DB si es para eso lo que pasa es que tengo que almacenar los datos para despues de otros procesos guardar

Un saludo,

guitar24 08/06/2007 09:46

Re: Crear filas nuevas en un datatable con un gridview
 
hola moNTeZIon, tienes razón no me he explicado correctamente.
Tengo un formulario en el que defino unos combos para seleccionar un idioma y el nivel que se tiene; y una tabla que en principio está
vacía y no visible. Inicialmente, al usuario se le presentan los combos para elegir, elige, presiona el botón añadir y la tabla se hace visible
introduciendo como fila los valores escogidos en los combos. Mi problema es que cuando el usuario escoge el siguiente idioma, la página se
recarga,me borra la fila anterior y sólo me aparece la nueva fila.
Mi código de la tabla en el formulario (.aspx) es el siguiente:

<asp:table id="tabla_idioma" style="Z-INDEX: 111; LEFT: 40px; POSITION: absolute; TOP: 224px"
runat="server" Width="536px" Height="32px" Visible="False" BorderColor="DarkGray" BorderStyle="Solid"
BorderWidth="1px" CellPadding="5" CellSpacing="0" EnableViewState="False">
<asp:TableRow EnableViewState="False" BackColor="LightBlue">
<asp:TableCell Runat="server" ID="Tablecell1">
<asp:Label ID="idi" Runat="server">Idioma</asp:Label>
</asp:TableCell>
<asp:TableCell Runat="server" ID="Tablecell2">
<asp:Label ID="oral" Runat="server">Comprensión Oral</asp:Label>
</asp:TableCell>
<asp:TableCell>
<asp:Label ID="escrita" Runat="server">Comprensión Escrita</asp:Label>
</asp:TableCell>
<asp:TableCell>
<asp:Label ID="lectura" Runat="server">Lectura</asp:Label>
</asp:TableCell>
<asp:TableCell></asp:TableCell>
<asp:TableCell></asp:TableCell>
<asp:TableCell></asp:TableCell>
</asp:TableRow>

</asp:table>

Mi código en .aspx.vb es el siguiente:

Private Sub btn_insertar_idioma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_insertar_idioma.Click

tabla_idioma.Visible = True
btn_guardar.Visible = True

Dim nueva_fila As TableRow
Dim nueva_celda As TableCell

nueva_fila = New TableRow

nueva_celda = New TableCell
nueva_celda.Text = dl_idioma.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = dl_oral.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = dl_escrita.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = dl_lectura.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

modificar.Text = "Modificar "
modificar.Enabled = True
modificar.NavigateUrl = "datos_idiomas.aspx?cambiar=si"

eliminar.Text = " Eliminar"
eliminar.Enabled = True
eliminar.NavigateUrl = "modificar_datos_idioma.aspx"

nueva_celda = New TableCell
nueva_celda.Controls.Add(modificar)
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = "|"
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Controls.Add(eliminar)
nueva_fila.Cells.Add(nueva_celda)

tabla_idioma.Rows.Add(nueva_fila)
End sub

A ver si me puedes echar una mano. Gracias por tu atención.

guitar24 11/06/2007 03:07

Re: Crear filas nuevas en un datatable con un gridview
 
Ahora he creado una variable de sesión que guarda la tabla. Pero ne me visualiza las filas que voy añadiendo, pq pasa esto?? Tb he probado lo del ispostback pero tampoco es la solución.
Por favor ayuda,

dariu800 22/07/2008 20:53

Respuesta: Crear filas nuevas en un datatable con un gridview
 
Hola!! soy nuevo en este foro...y este es mi primer post....justamente encontre este foro buscando la solucion para el mismo problema que tiene guitar24.
yo ahora no tengo el codigo, pero lo que hice fue colocar en el page load, el codigo para crear el datatable, las columnas y las filas. y en un boton lo unico que hago es agregar una fila nueva con un codigo similar a este:

Dim dRow as DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pipi"
[...]
miDataTable.Rows.Add(dRow)

me anda sin problemas, y me agrega la fila...el tema es cuando quiero agregar otra, que no se si me borra la anterio por el postback o sobre escribe la linea...
voy a estar atento a el tema, y si encuentro la solucion la subire lo mas rapido posible :-)

cardus 11/12/2008 22:13

Respuesta: Crear filas nuevas en un datatable con un gridview
 
yo tengo el mismo problema... como agregar varios... y despues poder meter todo a una bd

javier_linkolk 29/12/2008 09:21

Respuesta: Crear filas nuevas en un datatable con un gridview
 
hola a todos, me gustaria que alguien me ayude a crear un datatbale con todo lo que pueda tener en visual studio.net 2005 porque es ahi donde tengo dudas. por favor si?
muchisimas gracias

javier_linkolk 29/12/2008 09:24

Respuesta: Crear filas nuevas en un datatable con un gridview
 
Por favor alguien me puede ayudar, es que necesito hacerlo hoy! :aplauso:

mdavila 29/12/2008 12:19

Respuesta: Crear filas nuevas en un datatable con un gridview
 
Lo que les pasa es que cuando hacen postback la variable se pierde.... el que la guardo en una sesion esta correcto pero en cada page_load tiene que recuperarla y volverla a guardar.... se entiende!!!!


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


tabla = Session.Item("Tabla")
'haces lo que queres y luego la volves a guardar

'este add reemplaza al existente con los nuevos cambios mas los que tenias
'esto lo debes hacer seguramente en otro evento y no en el page_load
'declara la variable tabla como global para poder modificarla desde cualquier punto si queres
Session.Add("Tabla", Dt)

End Sub

Fito21m 24/02/2012 19:11

Respuesta: Crear filas nuevas en un datatable con un gridview
 
YTOTAL, está es la solución a tu problema...

// esta forma si es valida.. pero si no te funciona usa la que pondré después te este ejemplo
Dim dRow as DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pipi"
[...]
miDataTable.Rows.Add(dRow)


// esta forma tambien es valida sali de muchos aprietos...
Dim dRow as DataRow = miDataTable.NewRow()
dRow(0) = "pepe" // "Columna1"
dRow(1) = "pipi" // "Columna2"
[...]
miDataTable.Rows.Add(dRow)

Suerte.... FITO


La zona horaria es GMT -6. Ahora son las 02:21.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.