Sitio web de datos dinamicos: Custom Pages y Manipular los datos despues de obtenidos (EntityDataSource)
enero 19, 2012 1 comentario
Bien ahora si he tenido algo de tiempo para postear y bueno ahora me toca lo custon pages, el problema que tenia era el siguiente como es que hago que me muestren un total los listados que genera el Sitio Web de datos dinamicos, pues si estoy mostrando un listado de por ejemplo las compras, como es que al final (despues de la grilla) me muestre algunos textbox con los totales, en mi caso en particular era pa el moviento de caja (ingresos/salidas/saldo) bien lo primero que se tiene que hacer es crear custom pages (lo podria traducir pero no) para la entidad que deseas para eso vaz al explorador de soluciones y dentro de la carpeta “DynamicData\CustomPages” creas una carpeta con el mismo nombre de la entidad que deseas en mi caso “movscajachica” y luego como lo que quiero es modificar la pagina de listado voy a la carpeta “DynamicData\PageTemplates” y me copio el archivo List.aspx a mi carpeta que he creado, una vez echo esto lo que tenemos que hacer es cambiar el nombre de la clase (recuerda el nombre de la clase y no el nombre del archivo) asi cuando dice “public partial class List” (en el archivo .cs) lo cambias a lo que desees pero por norma yo hago esto “public partial class ListMovscajachica” y cambias tambien el “Inherits=”caja.List”" en el archivo. aspx por el nuevo nombre de tu clase quedando como esto “Inherits=”caja.ListMovscajachica”" por su puesto estamo modificando los archivos copiados, lo que estan en la carpeta con el nombre d enuestra entidad.
Bien ahora ya tenemos una pagina sobre la cual podemos modificar sin que se toque a las demas, pues como yo queria que se muestres tres valores totalizados pues le añadi despues de la grilla un DIV con tres textbox y listo ya me mostraba los textbox pero ahora me tocaba obtener y procesar la data para ello uso el metodo selected del EntityDataSource de la pagina que por defecto tiene el nombre “GridDataSource”.
Para poder manipular los resultados del query se tiene que trabajar con EntityDataSourceSelectedEventArgs que es un parametro del metodo Selected (el metodo selected se ejecuta una vez que ya se han obtenido los datos) i lo trabajo de esta manera:
protected void EntityDataSource1_Selected(object sender, EntityDataSourceSelectedEventArgs e)
{
decimal n = 0;
decimal n1 = 0;
decimal n2 = 0;
System.Collections.IEnumerator x = e.Results.GetEnumerator();
while (x.MoveNext())
{
ventas aa = (ventas) x.Current;
n = n + aa.monto;
n1 = n1 + aa.igv;
n2 = n2 + aa.total;
}
txtIngresos.Text = n.ToString();
txtSalidas.Text = n1.ToString();
txtTotal.Text = n2.ToString();
}
Como pueden ver estoy usando un IEnumerator pues es lo que retorna la propiedad Result del EntityDataSourceSelectedEventArgs el resto queda creo mas que explicado.
Como se comprende se puede maipular los datos de la manera que quieras para asi poder hacer calculos, resumenes y todo lo demas.
Pingback: Sitio web de datos dinamicos: Primeros pasos « Programacion y otras cosas