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

Cambiar texto de hyperlinkfield sin perder el DataNavigateUrlFields

Estas en el tema de Cambiar texto de hyperlinkfield sin perder el DataNavigateUrlFields en el foro de ASPX (.net) en Foros del Web. Hola a todos tengo un problemon En una aplicación web que cambia de idioma, me hans olicitado que los hyperlinks de cada gridview cambie segun ...
  #1 (permalink)  
Antiguo 18/08/2009, 08:40
 
Fecha de Ingreso: julio-2008
Mensajes: 26
Antigüedad: 15 años, 9 meses
Puntos: 0
Cambiar texto de hyperlinkfield sin perder el DataNavigateUrlFields

Hola a todos tengo un problemon

En una aplicación web que cambia de idioma, me hans olicitado que los hyperlinks de cada gridview cambie segun sea tambien el idioma seleccionado (lo cual hago gracias a san XML).

El problema que tengo es que si puedo cambiar el texto al hyperlinkfield pero pierde el valor de navegacion el cual lo trae desde la BD.
Intenté tambien creando la columna dinamicamente y agregandola, pero el DataNavigateUrlFields no lo puedo definir segun sea el campo de la bd.
Intenté que me trajera el IDENTIFICADOR_UNICO y no pude, osea real no se como hacerle
Código:
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
        'CAMBIO TEXTO DEL HYPERLINKFIELD PERO PIERDE EL DataNavigateUrlFields
        Dim dr As GridViewRow
        For Each dr In GridView1.Rows
            dr.Cells(3).Text = "sirve cambiar el texto"
        Next
        'CAMBIO TEXTO DEL CONTROL QUE ESTÁ EN UN TemplateField PERO IGUAL PIERDE EL NavigateUrl
        Dim sds As SqlDataSource
        Dim grid As GridView = Me.GridView1
        Dim resultado As New StringBuilder
        Dim hp_extra As New HyperLink
        sds = Me.GridView1.DataSource
        grid.DataSource = sds
        For Each renglon As GridViewRow In grid.Rows
            hp_extra = CType(renglon.FindControl("hp_extra"), HyperLink)
            hp_extra.Text = ("funciona cambiar texto")

        Next
        'CON  ESTE CREO LA COLUMNA CON EL TEXTO QUE QUIERO PERO EN NINGUN MOMENTO LE AGREGO LINK DE NAVEGACION
        'Y REAL NO SE COMO HACERLO (ENTIENDASE AGARRAR EL VALOR DE LA BASE DE DATOS, EN LOS ANTERIORES SE LO AGREGUE
        'DESDE LA VISTA DE DISEÑO ALGO ASI 
        ' <asp:HyperLink ID="hp_extra" runat="server" NavigateUrl='<%#Eval("PATH_LOG")%>'></asp:HyperLink>                                         
        'PERO DESDE CODIGO NO SE COMO USAR EL EVAL Y QUE AGARRE EL EQUIVALENTE PARA CADA RENGLON
        Dim x As New HyperLinkField
        If idioma.Text = "" Then
            x.Text = "texto 1"
        Else
            x.Text = "texto 2"
        End If
        Me.GridView1.Columns.Add(x)
        Me.GridView1.DataBind()
    End Sub
  #2 (permalink)  
Antiguo 02/08/2010, 09:05
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Cambiar texto de hyperlinkfield sin perder el DataNavigateUrlFields

Cita:
Iniciado por altairax Ver Mensaje
Hola a todos tengo un problemon

En una aplicación web que cambia de idioma, me hans olicitado que los hyperlinks de cada gridview cambie segun sea tambien el idioma seleccionado (lo cual hago gracias a san XML).

El problema que tengo es que si puedo cambiar el texto al hyperlinkfield pero pierde el valor de navegacion el cual lo trae desde la BD.
Intenté tambien creando la columna dinamicamente y agregandola, pero el DataNavigateUrlFields no lo puedo definir segun sea el campo de la bd.
Intenté que me trajera el IDENTIFICADOR_UNICO y no pude, osea real no se como hacerle
Código:
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
        'CAMBIO TEXTO DEL HYPERLINKFIELD PERO PIERDE EL DataNavigateUrlFields
        Dim dr As GridViewRow
        For Each dr In GridView1.Rows
            dr.Cells(3).Text = "sirve cambiar el texto"
        Next
        'CAMBIO TEXTO DEL CONTROL QUE ESTÁ EN UN TemplateField PERO IGUAL PIERDE EL NavigateUrl
        Dim sds As SqlDataSource
        Dim grid As GridView = Me.GridView1
        Dim resultado As New StringBuilder
        Dim hp_extra As New HyperLink
        sds = Me.GridView1.DataSource
        grid.DataSource = sds
        For Each renglon As GridViewRow In grid.Rows
            hp_extra = CType(renglon.FindControl("hp_extra"), HyperLink)
            hp_extra.Text = ("funciona cambiar texto")

        Next
        'CON  ESTE CREO LA COLUMNA CON EL TEXTO QUE QUIERO PERO EN NINGUN MOMENTO LE AGREGO LINK DE NAVEGACION
        'Y REAL NO SE COMO HACERLO (ENTIENDASE AGARRAR EL VALOR DE LA BASE DE DATOS, EN LOS ANTERIORES SE LO AGREGUE
        'DESDE LA VISTA DE DISEÑO ALGO ASI 
        ' <asp:HyperLink ID="hp_extra" runat="server" NavigateUrl='<%#Eval("PATH_LOG")%>'></asp:HyperLink>                                         
        'PERO DESDE CODIGO NO SE COMO USAR EL EVAL Y QUE AGARRE EL EQUIVALENTE PARA CADA RENGLON
        Dim x As New HyperLinkField
        If idioma.Text = "" Then
            x.Text = "texto 1"
        Else
            x.Text = "texto 2"
        End If
        Me.GridView1.Columns.Add(x)
        Me.GridView1.DataBind()
    End Sub



Lo solucione asi.

http://www.codenewsgroups.net/group/microsoft.public.dotnet.framework.aspnet.webcontro ls/topic9795.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 19:13.