Я сделал нечто очень похожее на это в недавнем проекте.Я использовал jqGrid для отображения - его можно легко привязать к данным в формате JSON (и, возможно, к данным в формате XML), и он поддерживает сортировку по заголовку столбца.Я определенно рекомендую его для функциональности и простоты использования.
Мне не нужно было реализовывать настраиваемое отображение / скрытие столбцов.Однако это можно сделать с помощью jqGrid довольно легко: столбцы сетки настраиваются в javascript, так что вы можете использовать логику code-behind во время начальной сборки страницы для настройки javascript, который определяет конфигурацию столбца.
Iопределенно не вернет HTML из класса ASHX, так как вам придется создавать весь HTML вручную, используя StringBuilder (или что-то подобное).Делает код сложнее поддерживать;и если вы когда-нибудь захотите изменить макет страницы, вам нужно перекомпилировать и заново развернуть вашу систему.Если вы отчаянно хотите вернуть полностью отформатированный HTML, я бы, вероятно, использовал jquery / ajax, чтобы просто вызвать страницу .ASPX.Этот подход неуклюж и сложен, но, по крайней мере, .ASPX ориентирован на создание полного HTML, в отличие от .ASHX.
Возможно, вы захотите возвратить JSON вместо XML.Это обеспечивает меньшие, более быстрые ответы по проводам, и с ним невероятно легко работать в javascript.В этом случае вам следует рассмотреть возможность использования ASMX вместо ASHX для генерации JSON, поскольку он может быть настроен на автоматическую сериализацию возвращаемого объекта как JSON.Это то, что я сделал в своем проекте, и его было очень быстро и легко разработать.
Наконец, я VASTLY предпочитаю jquery и ajax Microsoft ajax и updatePanels. Этот поток переполнения стека подробно описывает причины.