ASP.NET - ¿Como colocar una imagen en un resultado de un grdview?

 
Vista:
sin imagen de perfil

¿Como colocar una imagen en un resultado de un grdview?

Publicado por Vazagho (79 intervenciones) el 05/03/2013 23:21:08
que tal, quisiera saber como podria colocar imagenes en un campo temporal, cuando el gridview me muestre datos llamados desde un sp, por ejmplo tengo un campo pais, y quiero que me muestre en ves del texto la imagen, osea el caso seria, como ocultar esa columna pais y generar otra pero llamando en este caso la imagen de pais, si se puede , compartan la info, o si se puede hacer de otro control, podria ser tambien, pero estoy usando el gridview del, . net 2010
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

¿Como colocar una imagen en un resultado de un grdview?

Publicado por vazagho (79 intervenciones) el 09/03/2013 22:51:26
bueno logre colocar las images den la filas dependiendo del resultado que me arrojan las filas de otra columna

codigo de pagina
dentro del gridview

1
2
3
4
5
6
7
<Columns>
    <asp:TemplateField HeaderText="iPais">
        <ItemTemplate>
            <asp:Image ID="imgpais" runat="server" CausesValidation="False" Height="10" Width="15"></asp:Image>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>


y ahora en la parte del codigo
en e evento rowdatabound del gridview

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Protected Sub gb_gamers1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gb_gamers1.RowDataBound
        Dim row As GridViewRow = e.Row
        Dim img As Image = TryCast(e.Row.FindControl("imgpais"), Image)
        If row.RowIndex > -1 Then
            If row.Cells(3).Text = "[AR]" Then
                img.ImageUrl = "~/pages/images/[AR].png"
            ElseIf row.Cells(3).Text = "[BO]" Then
                img.ImageUrl = "~/pages/images/[BO].png"
            ElseIf row.Cells(3).Text = "[BR]" Then
                img.ImageUrl = "~/pages/images/[BR].png"
            ElseIf row.Cells(3).Text = "[CL]" Then
                img.ImageUrl = "~/pages/images/[CL].png"
            ElseIf row.Cells(3).Text = "[CO]" Then
                img.ImageUrl = "~/pages/images/[CO].png"
            ElseIf row.Cells(3).Text = "[CR]" Then
                img.ImageUrl = "~/pages/images/[CR].png"
            ElseIf row.Cells(3).Text = "[DK]" Then
                img.ImageUrl = "~/pages/images/[DK].png"
            ElseIf row.Cells(3).Text = "[EC]" Then
                img.ImageUrl = "~/pages/images/[EC].png"
            ElseIf row.Cells(3).Text = "[ESV]" Then
                img.ImageUrl = "~/pages/images/[ESV].png"
            ElseIf row.Cells(3).Text = "[ES]" Then
                img.ImageUrl = "~/pages/images/[ES].png"
            ElseIf row.Cells(3).Text = "[EUA]" Then
                img.ImageUrl = "~/pages/images/[EUA].png"
            ElseIf row.Cells(3).Text = "[GU]" Then
                img.ImageUrl = "~/pages/images/[GU].png"
            ElseIf row.Cells(3).Text = "[HN]" Then
                img.ImageUrl = "~/pages/images/[HN].png"
            ElseIf row.Cells(3).Text = "[HU]" Then
                img.ImageUrl = "~/pages/images/[HU].png"
            ElseIf row.Cells(3).Text = "[MLS]" Then
                img.ImageUrl = "~/pages/images/[MLS].png"
            ElseIf row.Cells(3).Text = "[MX]" Then
                img.ImageUrl = "~/pages/images/[MX].png"
            ElseIf row.Cells(3).Text = "[PA]" Then
                img.ImageUrl = "~/pages/images/[PA].png"
            ElseIf row.Cells(3).Text = "[PE]" Then
                img.ImageUrl = "~/pages/images/[PE].png"
            ElseIf row.Cells(3).Text = "[PR]" Then
                img.ImageUrl = "~/pages/images/[PR].png"
            ElseIf row.Cells(3).Text = "[RD]" Then
                img.ImageUrl = "~/pages/images/[RD].png"
            ElseIf row.Cells(3).Text = "[VE]" Then
                img.ImageUrl = "~/pages/images/[VE].png"
 
 
 
            End If
        End If
 
    End Sub


en esta parte
ElseIf row.Cells(3)
3 indica la columna de donde enlazo los nombre del pais con el nombre de mi imagen que deben de ser iguales

mi problema ahora es, como colocar esa columna autogenerada en otra posicion, osea que no este al comienzo sino en la 3ra ,4to o ultima colimna comose puede ordenar eso, y como se puede ocultar la columna que ya no quiero que sea vea, osea la del texto del pais???

a ver si con eso me peuden ayudar ya que hice la parte mas dificil, he visto codigos en la web pero no funcionan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Como colocar una imagen en un resultado de un grdview?

Publicado por Khristian (335 intervenciones) el 23/03/2013 13:09:57
Lo que yo hago es construir la URL de la imagen en la consulta SQL, asi podras mover, ocultar, mostrar, etc. esa columna a tu antojo.

Ahora es importante que uses un poco la logica...

Si te fijas, todos tus archivos tienen dos cosas en comun.

1.- Son todos PNG
2.- Todos llevan una logica para su nombre ([xx])

con lo anterior bastaria que en la consulta concatenes 3 elementos.
A) La Ruta
B) El ID del Pais
C) La extension de archivo

Supongamos que el campo del ID del pais se llama IDPais.

En la misma consulta agregas una columna de nombre, por ejemplo, PAIS.
La columna PAIS seria una COLUMNA CALCULADA que construirias asi:

'~/pages/images/' + IDPais + '.png'


Con eso ya podrias incluso usar dicha consulta en muchas paginas, y los cambios solo los harias en la capa de datos.
Imagina necesitas usar esa consulta en varias paginas... llenarias tu codebehind de codigo que no es reutilizable, y que ante cualquier cambio deberas andar modificando en todo tu sitio.

Otra cosa... cuando son mas de dos las opciones a evaluar... NO uses IF... debes usa SELECT CASE


--------------------------------------------------------------

Otra opcion que puedes hacer, es que en la tabla de los ID de los paises, tengas otra columna apuntando a la imagen.
Por ejemplo:

Creas un nuevo pais, y das la opcion de subir la imagen.
Si la suben, ya tienes la URL de la imagen.
Si no la suben, le asignas una URL de imagen generica (sin foto, como en los perfiles de red social cuando no hay foto)

Con esta opcion, tampoco tendras que andas evaluando condiciones.

Debes pensar siempre si ese modelo de negocio que diseñaste podria cambiar en el futuro.
Quiza no suceda seguido, pero han salido nuevos paises por algun lugar del mundo.

Ahora si dices... es que el cliente solo me pidio 10 paises por ejemplo.... PIENSA SIEMPRE.... Que pasa si me pide un nuevo pais...???
Desarrolla siempre pensando en hacerte el trabajo mas facil para ti, mira que olvidar actualizar o modificar alguna parte del sitio puede traerte dolores de cabeza al querer solucionarlos.

Saludos

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar