Несколько лет назад я решил создать свой собственный DataGrid, так как мне не нравился стандартный, предоставленный Microsoft. Это очень простая функция, которая принимает DataTable в качестве входного параметра и возвращает строку (HTML-код для отображения таблицы на веб-странице).
Он очень гибкий (есть некоторые необязательные параметры для разбивки на страницы, сортировки и форматирования каждого столбца так, как я хочу) и быстрый (только те записи, которые используются, извлекаются из базы данных).
Сама функция очень короткая (около 20 строк кода). Я использую его как минимум 4 года.
Предполагая, что на вашей веб-странице есть PlaceHolder, вы должны вызывать пользовательскую функцию следующим образом:
MyPlaceHolder.Controls.Add(new LiteralControl(CreateCustomGrid(MyDataTable)))
CreateCustomGrid (MyDataTable))) будет возвращать что-то вроде этого (если MyDataTable имеет 2 столбца и 2 строки):
<table class="MyClass" rules="all">
<tr>
<th>Column1</th>
<th>Column2</th>
</tr>
<tr>
<td align="center">Value1</td>
<td align="center">Value2</td>
</tr>
<tr>
<td align="center">Value3</td>
<td align="center"><a href=’MyLink’>Value4</a></td>
</tr>
</table>
Внутренне функция знает, как форматировать каждый столбец (эта функция используется только на одном веб-сайте), но ее также можно изменить для каждого отдельного столбца, используя дополнительные параметры. То же самое для подкачки и сортировки. В целом, он очень гибкий и очень простой в использовании.
Теперь все изменилось, и DataGrid был заменен GridView и / или ListView. Я смотрел на них, но я не вижу ничего, что они делают, чего не делает моя функция, поэтому я бы соблазнился продолжать использовать свою функцию, но я мог бы что-то упустить. В то же время, выглядит немного странно продолжать использовать пользовательскую функцию для генерации HTML-таблицы. Что вы думаете об этом?