none
separar registros de gridview ASP.NET y C# RRS feed

  • Pregunta

  • Buena tarde,

    Solicito de su ayuda y espero puedan ayudarme con mi problema, soy nuevo en esto del desarrollo web con asp.net y c# pero bueno les comento mi problema, llamo a un store procedure desde mi aplicativo para que llene un gridview  hasta aquí funciona correctamente, ahora necesito acomodar la información por edad  ejemplo

    gridview--------nota mi gridview trae los registros de esta forma

    nombre     edad

    alan           12

    vero            9

    pedro         12

    mari           9

    necesito que se muestren de esta forma en el gridview:

    nombre    edad

    alan           12

    pedro         12

    nombre     edad

    mari           9

    vero            9


    • Editado killer1923 viernes, 25 de noviembre de 2016 19:01 FALTO DESCRIPCION DETALLADA
    • Tipo cambiado Laura CeglzModerator lunes, 28 de noviembre de 2016 19:02
    viernes, 25 de noviembre de 2016 19:00

Respuestas

  • El GridView por sí solo no sabe hacerlo. Tendrás que agrupar los datos sobre al almacenamiento que tengas por detrás para el DataBinding del GridView. Por ejemplo, si has cargado los datos desde el procedimiento almacenado a un DataTable y luego has enlazado el DataTable con el GridView, entonces lo primero ordena los datos por edad (puedes hacerlo con un ORDER BY en el procedimiento, o si no lo puedes modificar, entonces ordena el DataTable). Después, recórrelo con un bucle buscando los cambios de edad, y en ese punto insértale un DataRow con la fila de títulos ("nombre", "edad"). Y cuando eso termine, conéctalo al DataSource del GridView y haz el DataBind(). Si necesitas presentar con otro estilo esa fila, aplícale el estilo durante el evento Row_DataBound.

    Como ves, lleva bastante trabajo, sobre todo si eres nuevo y cada uno de esos pasos individuales supone "un mundo" para ti. Como alternativa, si necesitas mostrar información con una estructura compleja, puedes diseñar un informe rdlc y mostrarlo en un ReportViewer, en lugar de usar el GridView. Estos informes sí que permiten este tipo de funcionalidad (agrupar, presentar cabeceras, cambiar estilos, etc.) solo con activar esas opciones desde el diseñador del informe.

    viernes, 25 de noviembre de 2016 19:13

Todas las respuestas

  • El GridView por sí solo no sabe hacerlo. Tendrás que agrupar los datos sobre al almacenamiento que tengas por detrás para el DataBinding del GridView. Por ejemplo, si has cargado los datos desde el procedimiento almacenado a un DataTable y luego has enlazado el DataTable con el GridView, entonces lo primero ordena los datos por edad (puedes hacerlo con un ORDER BY en el procedimiento, o si no lo puedes modificar, entonces ordena el DataTable). Después, recórrelo con un bucle buscando los cambios de edad, y en ese punto insértale un DataRow con la fila de títulos ("nombre", "edad"). Y cuando eso termine, conéctalo al DataSource del GridView y haz el DataBind(). Si necesitas presentar con otro estilo esa fila, aplícale el estilo durante el evento Row_DataBound.

    Como ves, lleva bastante trabajo, sobre todo si eres nuevo y cada uno de esos pasos individuales supone "un mundo" para ti. Como alternativa, si necesitas mostrar información con una estructura compleja, puedes diseñar un informe rdlc y mostrarlo en un ReportViewer, en lugar de usar el GridView. Estos informes sí que permiten este tipo de funcionalidad (agrupar, presentar cabeceras, cambiar estilos, etc.) solo con activar esas opciones desde el diseñador del informe.

    viernes, 25 de noviembre de 2016 19:13
  • gracias por la info, trabajare en eso
    lunes, 28 de noviembre de 2016 16:31