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

Llenado de GridView C#

Estas en el tema de Llenado de GridView C# en el foro de ASPX (.net) en Foros del Web. Hola. Nuevamente tengo una consulta que hacerles. En una página tengo un gridview que lleno desde una consulta sql. A las columnas del gridview le ...
  #1 (permalink)  
Antiguo 31/07/2009, 11:07
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Llenado de GridView C#

Hola.

Nuevamente tengo una consulta que hacerles.

En una página tengo un gridview que lleno desde una consulta sql.
A las columnas del gridview le doy el siguiente formato:

Código asp:
Ver original
  1. <Columns>
  2.             <asp:BoundField DataField="ID_REGISTRO" HeaderText="ID" ItemStyle-Width="500px" FooterStyle-HorizontalAlign="Center">
  3. <FooterStyle HorizontalAlign="Center"></FooterStyle>
  4.             <ItemStyle Width="500px" ></ItemStyle>
  5.             </asp:BoundField>
  6.  
  7.             <asp:BoundField DataField="RUT" HeaderText="RUT Empleado"
  8.                 ItemStyle-Width="1000px" HeaderStyle-HorizontalAlign="Center">
  9. <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
  10.             <ItemStyle Width="1000px"></ItemStyle>
  11.             </asp:BoundField>
  12.  
  13.             <asp:BoundField DataField="NOMBRE_CURSO" HeaderText="Curso" HtmlEncode="false"
  14.                 ItemStyle-Width="1200px" FooterStyle-HorizontalAlign="Center">
  15. <FooterStyle HorizontalAlign="Center"></FooterStyle>
  16.             <ItemStyle Width="1200px"></ItemStyle>
  17.             </asp:BoundField>
  18.  
  19.             <asp:BoundField DataField="CODIGO_CURSO" HeaderText="Cod. Curso" HtmlEncode="false"
  20.                 ItemStyle-Width="1200px" FooterStyle-HorizontalAlign="Center">
  21. <FooterStyle HorizontalAlign="Center"></FooterStyle>
  22.             <ItemStyle Width="1200px"></ItemStyle>
  23.             </asp:BoundField>
  24.  
  25.             <asp:BoundField DataField="FECHA" HeaderText="Fecha" HtmlEncode="false"
  26.                 ItemStyle-Width="1200px" FooterStyle-HorizontalAlign="Center">
  27. <FooterStyle HorizontalAlign="Center"></FooterStyle>
  28.             <ItemStyle Width="1200px"></ItemStyle>
  29.             </asp:BoundField>
  30.  
  31.             <asp:ButtonField CommandName="Select" Text="IR" />
  32.         </Columns>


Lo que quiero hacer es llenar la misma gridview con otra consulta sql, pero que esta otra consulta retorna datos con otros nombres RUT, NOMBRE, APELLIDO_PATERNO y nada más....

¿Como puedo hacer para cambiar el formato de cada BoundField del grid view al ejecutar el sistema?
¿Se puede?

Espero su ayuda!

Gracias!

Saludos!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #2 (permalink)  
Antiguo 31/07/2009, 13:00
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Llenado de GridView C#

Bueno lo que podrias hacer en tu consulta es algo como....


select nombre as nombre, apellido as apellido from tabla

y la otra consulta

select item as nombre, item2 as apellido from tabla

como veras los campos asi siempre se llamaran nombre y apellido aunque selecciones otra cosa.....


Si la cantidad de items varia podrias jugar con ocultar campos en la grilla dependiendo del select que quieras mostrar.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #3 (permalink)  
Antiguo 31/07/2009, 13:17
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Llenado de GridView C#

Gracias por responder!

mmm... ya lo habia pensado, pero el problema es que necesito la segunda consulta para otra grid y par auna comparacion de datos (que ya estoy utilizando )

por eso es un gran problema cambiar el nombre de lo que retorna la consulta...

aparte de esa opcion, puede haber otra?

yo estaba intentando rescatar el nombre de cada columna desde C# para poder cambiarlo, pero no me resulta tampoco.

Tendré que poner una grid encima de otra e ir jugando con la visibilidad de ellas? <--- no quiero llegar a esa opcion....

Si es que sabes algo más que puedo hacer te lo agradecería mucho...

Gracias!

Saludos!.
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #4 (permalink)  
Antiguo 31/07/2009, 13:18
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Llenado de GridView C#

Lo más facil es como te dice el amigo arriba.
Sino un poco más complicado es cambiarlo por código usando el evento RowCreated, algo como esto, que lo vas a tener que adaptar a tus necesidades si queres hacerlo por código:

Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If e.Row.RowType = DataControlRowType.Header Then
Dim c As TableCell
For Each c In e.Row.Cells
c.Text = "título"
Next
End If
End Sub

Es un ejemplo solo para que veas que se puede cambiar el título por código, pero es más facil lo anterior.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #5 (permalink)  
Antiguo 31/07/2009, 13:51
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Llenado de GridView C#

Gracias!...

Pero ese código lo que hace es cambiar el titulo de todas las columnas por "titulo" en ese caso...

Yo lo que necesito es cambiar el nombre del dato que recibe cada columna de la grid. Y una vez cambiado el dato se cambia el título de la columna....


Gracias Nuevamente!

Saludos!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
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 19:07.