< %# Eval(“Valor”)% >

Últimamente me he percatado de la valiosa ayuda que esta función
tiene, y es que a veces es necesario procesar la información que el origen de
datos nos da, pero todo esto sobre algún control de datos.

Como ejemplo, he desarrollado una aplicación de evaluación de
escenarios/temas, donde cada usuario autenticado y autorizado, puede dar
valores de probabilidad a un escenario, en una escala del 1 al 5, registrando
en una Base de Datos, la evaluación que cada usuario le ha dado a cada uno de
los escenarios.

Pero sabemos que un usuario no terminará de evaluar todos
los escenarios en una sola sesión, así que es recomendable mostrarle una lista
de los escenarios y recordarle cuales ya han sido evaluados y cuáles no.

Para esto utilice un ListView como control de repetición
de datos, para mostrar los escenarios/temas, y si ya han sido evaluados o no.
Para mostrar si ya han sido evaluados muestro una y si o muestro una .

Aqui el código de como hacerlo:

Dentro del ASP ListView

<HeaderTemplate>
<table cellpadding="0" cellspacing="0" width="700px" style="font-family:Calibri, Sans-Serif">
</HeaderTemplate>
<ItemTemplate>
<%# Convert.ToInt32(Eval("Probabilidad")) > 0 ? "<img src="../images/palomita.png" width="20px" />" : "<img src="../images/tachita.png" width="15px" />"%>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>

Quedando algo asi:

Gracias


Facebook
Twitter
More...

Customizar Rows en un ASP Gridview

La manera más fácil de utilizar un ASP Gridview es que a partir de un origen de datos seleccionado Visual Studio, cree automáticamente las columnas y el tipo de control en el cual se representaran los datos, generalmente de tipo ASP BoundField.

Pero cada caso es muy diferente a los demás, en ocasiones esto no es muy conveniente debido a la extensa longitud de algunos datos.

Desarrollando un acortador de URL’s me encontré con un dato que quería mostrar en una columna de un ASP Gridview que era demasiado extenso (Url Larga), y al darle un ancho fijo a la columna lo único que hacia era distribuir el contenido en varias líneas. Eso si la cadena tenía espacios, si no, no respetaba el ancho de la columna.

Entonces, como no era necesario mostrar la cadena completa (Url Larga), decidí, hacer lo siguiente.

Dentro de la etiqueta <Columns> del Gridview
1.- Cambiar el tipo ASP BoundField por el tipo ASP ItemTemplate
2.- Dentro de <ItemTemplate>, Colocar un
<div> con el ancho requerido, y el estilo overflow:hidden.
3.- Dentro del div evaluar la expresión del origen de datos <%# Eval(“Url Larga”)%>

De esta manera, dentro del div se mostrara el contenido de la expresión, el ancho no cambiara a pesar de la longitud del contenido, y con el estilo nos aseguramos que el texto que se salga del div no aparezca, quedando algo asi:

De igual manera para la columna Url Corta, modifique el BoundField por ItemTemplate para poder mostrar este campo como un enlace <a>

Gracias