Доступ к данным - ADO.NET отлично подходит, если вы к этому привыкли. У меня были отличные результаты, используя Subsonic ActiveRecord и PetaPoco. После установки он избавляет от необходимости заниматься полным доступом к данным без особых затрат на обучение, в отличие от многих других ORM. Они бесплатны для использования, и я определенно рекомендую их.
Таблицы - Частичные представления могут быть полезны, если у вас было очень сложное взаимодействие нескольких наборов данных, которые вы объединяли после извлечения в бизнес-классах. Однако, если вы представляете данные, которые поступают из одной таблицы или даже близки к ее окончательной форме, в качестве результата запроса, нет никаких оснований использовать их для этого. Вместо этого переберите данные с помощью цикла foreach и отформатируйте HTML таким образом.
Сетка-подобная презентация довольно проста.
<% foreach (var row in Model.Rows) {%>
[HTML for one row]
<%}%>
Это можно сделать даже с помощью таблиц HTML, поскольку вы представляете таблицы данных.
<table>
<% foreach (var row in Model.Rows) {%>
<tr>
<td>row.Element1</td>
<td>row.Element2</td>
<td>row.Element3</td>
</tr>
<%}%>
</table>
Внешний вид сетки - Что касается внешнего вида, такого как чередование или раскраска данных, основанных на контенте, включите эти решения в данные модели, которые вы отправляете, и просто используйте классы CSS в своем представлении, чтобы добиться этого , Например, вы можете вернуть значение «нечетное» или «четное» в поле OddEven, которое будет CSS-классами, которые можно стилизовать в таблице стилей.
<table>
<% foreach (var row in Model.Rows) {%>
<tr class=<%=row.OddEven%>>
<td>row.Element1</td>
<td>row.Element2</td>
<td>row.Element3</td>
</tr>
<%}%>
</table>
Сортировка - Что касается тяжелого jQuery или javascript для сортировки и манипулирования данными, я подожду, пока возникнет некоторая известная проблема с производительностью, прежде чем беспокоиться о перезагрузке данных все время. Однако, если вы перезагружаете данные каждый раз, вы можете столкнуться с проблемами, когда данные в сетке постоянно обновляются, и ваш пользователь обнаружит, что он теряет позицию курсора или прерывается во время редактирования или что изменения вызывают события при неполном редактировании, которое заканчивается вверх в базе данных.
Хотя кажется, что сетка данных находится в порядке дат, и кто-то меняет дату, самое важное - немедленно прибегнуть к данным. Я не претендую на то, что знаю вашу ситуацию, но после многих лет работы я обнаружил, что просто позволить пользователю выполнить свою работу (например, пропустив обращение), часто важнее перестановка строк, что часто означает данные, которые пытались редактировать, переместились в другое место, и они должны найти их снова.
Убедительным интерфейсом может быть то, что сохранение отправляется за кулисы, когда элементы данных изменяются, но сетка не перемещается и не восстанавливается. Конечно, в следующий раз, когда страница обновляется, она будет восстановлена, но не во время сеанса редактирования. Просто идея для рассмотрения.
Взаимодействие с клиентом - Если в вашем приложении много пользователей и много правок, большие наборы данных могут привести к большому трафику, если вы обновляете данные при каждом редактировании. Однако, если это собственное приложение с ограниченным количеством пользователей или ограниченной активностью, это, конечно, не проблема. Использование jQuery для редактирования данных работает довольно хорошо - вы можете добавлять вызовы для сохранения данных в том виде, в каком они были отредактированы, и это может придать приложению удобство, которого не хватало в более традиционных веб-приложениях.