Foros del Web » Programando para Internet » ASPX (.net) »

Ingresar datos a DataGrid mediante un FOR

Estas en el tema de Ingresar datos a DataGrid mediante un FOR en el foro de ASPX (.net) en Foros del Web. Hola... un saludo a todos y gracias anticipadas por la ayuda que me puedan brindar... Bien tengo un problema cuando deseo agregar registros a un ...
  #1 (permalink)  
Antiguo 08/03/2010, 13:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 8 meses
Puntos: 0
Ingresar datos a DataGrid mediante un FOR

Hola... un saludo a todos y gracias anticipadas por la ayuda que me puedan brindar...

Bien tengo un problema cuando deseo agregar registros a un gridview mediante un For...



protected void Page_Load(object sender, EventArgs e)
{
DateTime fechapago = DateTime.Parse("02/03/2010");

for (int i = 0; i < 11; i++)
{

GridView1.DataSource = (i.ToString() +" "+fechapago.ToShortDateString());
DataBind();
}

}


El error es que me imprime todo en una sola columna y ensima raro por k solo me da el resultado del ultimo buble....

y lo que busco masomenos es esto :

ID | Fecha
-----------------------
1 | 02/03/2010
2 | 02/03/2010
3 | 02/03/2010
4 | 02/03/2010
.. | ....

Bueno esto es para generar un Plan de Pagos por Cuotas y fechas... segun se ingrese la cantidad de meses para pagar dentro de un gridview...

gracias por la ayuda o algun ejemplo que me puedan dar...

Última edición por oscarjf; 08/03/2010 a las 13:41
  #2 (permalink)  
Antiguo 08/03/2010, 14:09
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: Ingresar datos a DataGrid mediante un FOR

No estoy seguro de la solución, pero estoy seguro que no lo lograras con .DataSource..

Checando rápido, no creo que el GridView pueda ser llenado manualmente... pero si lo que ocupas es una tabla de esa forma.. porque no usas una simple tabla?

Código C#:
Ver original
  1. TableRow tr = new TableRow();
  2. tr.Cells.Add(new TableCell("ID"));
  3. tr.Cells.Add(new TableRow("Fecha");
  4. for(int i = 0; i<11; i++)
  5. {
  6.      TableRow tr = new TableRow();
  7.      tr.Cells.Add(new TableCell(i.ToString());
  8.      tr.Cells.Add(new TableCell(fechapago.ToShortDateTime());
  9.      Table1.Rows.Add(tr);
  10. }
  #3 (permalink)  
Antiguo 08/03/2010, 22:02
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ingresar datos a DataGrid mediante un FOR

gracias por responder pero no hay forma de que este dentro de un DataGrid ??? y tu ejemplo me da un error en new TableCell y new TableRow
  #4 (permalink)  
Antiguo 09/03/2010, 05:26
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: Ingresar datos a DataGrid mediante un FOR

Hola.

Primero, no podes agregar de la manera que estas haciendo.
Tenes que generar un Source al estilo que te muestra el amigo osvier.

Si queres agregar un registro al gridview, primero tenes que tener tu source, luego agregar el registro al source y por ultimo hacer el DataBind nuevamente.

Podrias tener tu Source (Una tabla) en la sesion, siempre y cuando no sea mucha info para no sobrecargar la app.

Entonces....

ProtectedSub AgregarRegistro(ByVal ID AsInteger, ByVal Fecha As DateTime)
Dim Dt As DataTable = Session.Item("TuTabla")
Dim Row As DataRow

'aca deberias verificar que no exista el registro
If NoExiste(ID) Then
Row = Dt.NewRow
Row(
"ID") = ID
Row(
"Fecha") = Fecha
Dt.Rows.Add(Row)
Session.Add(
"TuTabla", Dt)
GridView1.DataSource = Dt
GridView1.DataBind()
EndIf
EndSub

Protectedfunction NoExiste(ByVal ID AsInteger) AsBooleanHandles
Dim Dt As DataTable = Session.Item("TuTabla")
Dim Row As DataRow
Dim Existe AsBoolean = False

ForEach Row In Dt.Rows
If Row("ID") = ID Then
Existe = True
ExitFor
EndIf
Next
Return Existe
EndFunction



Se entiende?

Saludos.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.

Etiquetas: datagrid, ingresar, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.