Utilizar mas de un campo en un HyperLinkField (DataNavigateUrlFields)

Como ya saben, este blog no solo es para informar, sinó para mantener una documentación sobre cosas que voy aprendiendo y descubriendo, y, de esta manera, no olvidarmelas o tener algún lugar de referencia para futuras consultas.


En este caso se trata del control HyperLinkField.
Si suelen utilizar este control a menudo, sabrán que la propiedad DataNavigateUrlFields nos sirve para indicar el nombre del campo de la clase vinculada, que queremos reemplazar en alguna parte de la propiedad DataNavigateUrlFormatString.

A continuación, un ejemplo:

<asp:HyperLinkField DataNavigateUrlFields="IdContacto" DataNavigateUrlFormatString="~/frmEditarContacto.aspx?idcontacto={0}" HeaderText="Editar" Text="Editar Contacto" />


No es muy dificil entender lo que sucede aqui.
Cuando se realice el render de la página, el control buscará la propiedad IdContacto, tomara su valor, y lo reemplazará en {0}, en la propiedad DataNavigateUrlFormatString, por lo que el URL nos quedará de la siguiente manera:
Suponiendo que el valor de IdContacto sea "32":
frmEditarContacto.aspx?idcontacto=32

Hasta ahí todo muy lindo, pero que pasa si quisieramos indicar 2 o más parametros en el mismo link?

La solución es muy sencilla. Solo debemos indicar los nombres de las propiedades en DataNavigateUrlFields, separados por una coma sin espacios, y luego vamos incrementando el indice en la propiedad DataNavigateUrlFormatString.

El Markup nos quedaría de la siguiente manera:

<asp:HyperLinkField DataNavigateUrlFields="IdContacto, IdCiudad" DataNavigateUrlFormatString="~/frmEditarContacto.aspx?idcontacto={0}&idciudad={1}" HeaderText="Editar" Text="Editar Contacto" />


Y siguiendo la lógica de lo antes explicado, el URL final nos quedaría de la siguiente manera:

Suponiendo que el valor de IdContacto sea "32"
Suponiendo que el valor de IdCiudad sea "6"
frmEditarContacto.aspx?idcontacto=32&idciudad=6

Ojalá le sea de utilidad a alguien. Saludos!

5 comentarios:

Anónimo dijo...

ñoño ortiva. (critica constructiva)
borrame porque sos ortiVa y te puedo arruinar el blog de ñoños con mi comentario .
:)

Anónimo dijo...

Excelente aporte me sirvió mucho gracias

JESUS BRIZUELA dijo...

Gracias amigo me sirvió mucho! JBA

Anónimo dijo...

muchas Gracias me sirvio no me habia funcionado ningun metodo que habia encontrado ,

Anónimo dijo...

Gracias, tu ejemplo esta muy claro y me sirvio de mucho, te lo agradezco!!!