Actualmente estoy implementando una solución de paginación del lado del cliente usando ASP.NET, jQuery y JSON.ASP.NET, C# y tipos anónimos - Iterar a través de una DataTable mientras se construye manualmente un tipo anónimo
He estado siguiendo el excelente artículo de encosia: http://encosia.com/2008/08/20/easily-build-powerful-client-side-ajax-paging-using-jquery/
En mi método Web puedo recuperar mis datos de la base de datos como un DataTable:
DataTable categoryProducts = ProductViewerAccess.GetCategoryProducts
("AA", 4, 0, Page.ToString(), out howManyPages, "FALSE", 0, "CostPrice", "asc", destinationList);
luego recuperar los datos de la DataTable en un tipo anónimo:
var feeds =
from feed in categoryProducts.AsEnumerable()
select new
{
Description = feed.Field<string>("description"),
MfPartNo = feed.Field<string>("MfPN"),
Inventory = feed.Field<Int32>("Inventory")
};
el tipo anónimo se devuelve desde el método web para el lado del cliente:
return feeds.Take (PageSize);
Una plantilla continuación, extrae y muestra los campos:
<tbody>
{#foreach $T.d as post}
<tr>
<td>
{$T.post.Description}
<p>Mfr#: {$T.post.MfPartNo}</p>
</td>
<td>{$T.post.Inventory}</td>
</tr>
{#/for}
</tbody>
Todo esto funciona muy bien.
Sin embargo, me gustaría extender el código para realizar algunas comprobaciones de evaluación (por ejemplo, comprobar que varias columnas en DataTable no son NULAS) y otro preprocesamiento (por ejemplo, invocar varias funciones para construir la URL de la imagen el ID de la imagen, que es otra columna del DataTable que no se muestra en el fragmento de código, antes de devolver las filas resultantes del DataTable como un tipo anónimo al lado del cliente.
Básicamente, quiero iterar a través de la DataTable, realizar comprobaciones de evaluación y preprocesamiento, mientras construyo mi tipo anónimo manualmente a medida que avanzo. ¿O tal vez hay una mejor manera de lograr esto?
¿De todos modos puedo lograrlo?
Saludos cordiales
Walter