none
Agregar rows dinamicamante a un gridview RRS feed

  • Pregunta

  • Estimados, una ayuda por favor.

    Necesito agregar varios rows a un grilla que muestra registros de una tabla, los rows agregados deben mantener el mismo formato, con DDL, link textbox etc. La ide a es que estos rows sirvan para ingresar nuevos registros.

    Esperando su respuesta.

    Atte

    viernes, 29 de julio de 2011 15:04

Respuestas

  • Estimados.

     

    Solucione mi problema con lo siguiente:

    Yo utilizo ASP.Net 4.0 y C# 2010

     

    NOmbre_grilla.dataSource = Nombre_dataset;

    //agregar nuevas filas al datagrid sin perder formato

    Nombre_dataset..Tables[0].Rows.Add('1');

    .................................................('2');

    .................................................('3')

    Nombre_grilla.DataBind;

     

    Y listo

    SAludos

    • Marcado como respuesta tuxopont martes, 2 de agosto de 2011 17:32
    martes, 2 de agosto de 2011 17:32

Todas las respuestas

  • hola

    las rows que agregues al gridview lo haces siempre a los datos, no directo en el control

    esto mismo lo explico aqui

    http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/3e225f1d-1833-482c-8d4a-763786d09d5f

    veras como se mantiene la info en la Session para ir agregando nueva informacion

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 29 de julio de 2011 15:12
  • complementando lo que dice leandro, tienes que agregar directo a la fuente de datos... osea datatable o dataset, algo sensillo seria que en una funcion llenes el datatable y lo retornes para que esta lo puedes usar varias veces... despues cuando obtengas la datatable agregarle la fila... algo asi

    Sub llenar_grid()
        'aqui llenamos el grid sin agregar ninguna fila
        GridView1.DataSource = llenar_tabla()
        GridView1.DataBind()
      End Sub
    
      Sub llenar_grid_agregar_fila()
        'llenar la tabla con los datos originales
        Dim dt As DataTable = llenar_tabla()
        'creas la fila que vas a insertar
        Dim dr As DataRow = dt.NewRow
        'agregas los valores a los campos correspondientes
        dr.Item("Columna1") = textbox1.text
        dr.Item("Columna2") = textbox2.text
        'recuerda agregar la fila al datatable
        dt.Rows.Add(dr)
        dt.AcceptChanges()
        'por ultimo llenas el grid con la fila agregada
        GridView1.DataSource = dt
        GridView1.DataBind()
      End Sub
    

    recuerda que en llenar_tabla va una funcion en donde llenar la datatable con la que se bindea el grid

    saludos

    viernes, 29 de julio de 2011 15:40
  • hola Arthuro

    como es que mantendrias la inforamcion entre postback ?

    o sea si siempre recuperas la info usando llenar_tabla() que apsa con los datos de la operaicon anterio que agregaste manualmente ?

    no se perderian, no deberias suar el objeto Session para mantener esta informacion

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Arthuro Zerda lunes, 1 de agosto de 2011 22:00
    viernes, 29 de julio de 2011 15:48
  • Gracias estimado por las respuestas....

    Saludos

    viernes, 29 de julio de 2011 19:31
  • Estimado...

    Cuando trato de agregar 5 rows vacais , me reemplaza los datos que estan el gridview, y no me los deja al final del gridview, me puedes ayudar.

    Saludos.

    lunes, 1 de agosto de 2011 21:44
  • ye leandro, tienes rason, hay que mantenerlo con una session... no habia pensado en lo pasado pero al igual puede remplazar el llenar tabla por la session no?

    lunes, 1 de agosto de 2011 22:03
  • Estimados.

     

    Solucione mi problema con lo siguiente:

    Yo utilizo ASP.Net 4.0 y C# 2010

     

    NOmbre_grilla.dataSource = Nombre_dataset;

    //agregar nuevas filas al datagrid sin perder formato

    Nombre_dataset..Tables[0].Rows.Add('1');

    .................................................('2');

    .................................................('3')

    Nombre_grilla.DataBind;

     

    Y listo

    SAludos

    • Marcado como respuesta tuxopont martes, 2 de agosto de 2011 17:32
    martes, 2 de agosto de 2011 17:32