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!

Calcular la edad de una persona con C#

Con la siguiente función podemos averiguar facilmente, la edad de una persona.

public int Edad(DateTime fechaNacimiento)
{
//Obtengo la diferencia en años.
int edad = DateTime.Now.Year - fechaNacimiento.Value.Year;

//Obtengo la fecha de cumpleaños de este año.
DateTime nacimientoAhora = fechaNacimiento.Value.AddYears(edad)
//Le resto un año si la fecha actual es anterior
//al día de nacimiento.
if (DateTime.Now.CompareTo(nacimientoAhora) > 0)
{
edad--;
}

return edad;
}

Espero les sea de utilidad.
Saludos!

Tutorial XNA 2.0 - 01: Introducción e Instalación

Así que. Te decidiste... Querés crear juegos o aplicaciones en 3d... la tenés clarísima con .net ... pero no tenés idea de donde arrancar.
La respuesta es muy facil... XNA 2.0

¿Que es XNA?

La respuesta puede ser larga, pero vamos a hacer esto bien tranqui y corto para que la cacen de una.
Xna es un entorno basado en el Framework de .Net 2.0. creado y diseñado especificamente para crear juegos o aplicaciones que requieran el poder de una placa aceleradora de video, para plataformas de PC o XBOX... así es... con XNA, podés crear juegos para la XBOX por tu cuenta.
----

¿Que necesito para poder programar y desarrollar con XNA?

Para desarrollar con XNA necesitas:
-Visual Studio 2005 ó Visual C# Express 2005 (Por el momento, la versión 2008 no está soportada.)
- Si usas Visual Studio 2005, necesitas el Service pack 1 del mismo.
-Si utilizas Visual C# Express 2005, necesitas el Service Pack para este.
-Visual C# Express 2005 SP1
-XNA Game Studio 2.0 Framework

Eso es todo.. bajá, instalá y avisame cuando esté así seguimos...

----

Listo, ya sabés lo que es XNA. El "COMO FUNCIONA?" lo vas a ir viendo a través de estos tutoriales que voy a ir armando.