В настоящее время я внедряю решение для подкачки на стороне клиента, используя ASP.NET, jQuery и JSON.
Я следил за отличной статьей от Encosia: http://encosia.com/2008/08/20/easily-build-powerful-client-side-ajax-paging-using-jquery/
В моем веб-методе я извлекаю свои данные из базы данных в виде таблицы данных:
DataTable categoryProducts = ProductViewerAccess.GetCategoryProducts
("AA", 4, 0, Page.ToString(), out howManyPages, "FALSE", 0, "CostPrice", "asc", destinationList);
Затем я извлекаю данные из DataTable в анонимный тип:
var feeds =
from feed in categoryProducts.AsEnumerable()
select new
{
Description = feed.Field<string>("description"),
MfPartNo = feed.Field<string>("MfPN"),
Inventory = feed.Field<Int32>("Inventory")
};
Затем анонимный тип возвращается из веб-метода на клиентскую сторону:
return feeds.Take (PageSize);
Затем шаблон извлекает и отображает поля:
<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>
Все это прекрасно работает.
Однако я хотел бы расширить код для выполнения некоторых проверок оценки (например, проверки того, что различные столбцы в DataTable не равны NULL) и другой предварительной обработки (например, вызова различных функций для создания URL-адреса изображения на основе ID изображения - это еще один столбец в DataTable, не показанный во фрагменте кода), прежде чем я возвращу результирующие строки DataTable как анонимный тип на стороне клиента.
По сути, я хочу перебрать DataTable, выполнить проверку и предварительную обработку, одновременно создавая свой анонимный тип вручную. Или, может быть, есть лучший способ добиться этого?
Могу ли я в любом случае этого добиться?
С уважением
Walter