Tengo una aplicación de Web Forms de ASP.NET. En mi aplicación tengo un GridView que funciona sin problemas. Tengo varios campos de texto y el último es <asp:hyperlinkfield>
.Cómo reemplazar programáticamente un HyperLinkField en un GridView de ASP.NET
Ahora me gustaría cambiar el campo mediante programación colocando un enlace simple en lugar del hyperlinkfield
si se cumple una condición específica. Por lo tanto cojo el onRowDataBound
evento:
Sub myGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles myGridView.RowDataBound
If (condition) Then
Dim link = New HyperLink()
link.Text = "login"
link.NavigateUrl = "login.aspx"
e.Row.Cells(3).Controls.Add(link)
End If
End If
End Sub
donde n es la célula donde se coloca el hyperlinkfield
. Con este código, solo agrega al hyperlinkfield
el nuevo link
. ¿Cómo puedo reemplazarlo?
PS: El código es en VB6 pero yo soy un programador de C#, se aceptan respuestas con los dos idiomas
Te doy la respuesta, pero el primero es el que estaba buscando. La razón principal es que mi 'HyperLinkField' tiene otros atributos vinculados a los datos y, por lo tanto, no puedo simplemente reemplazar Text y NavigateUrl. Lo sorprendente es que ninguno notó que el control que tenía que eliminar era un 'HyperLinkField' que difería de' HyperLink'. Supongo que la primera solución funciona sin problemas a menos que haya algo de JavaScript conectado a la actualización de datos de 'GridView' pero no es mi caso. ¡Muchas gracias! – CiccioMiami