Если я получу свой набор данных в DataTable, я могу делать с ним все, что захочу, но у меня возникают сложности с обработкой сортировки, разбиения по страницам и кеширования вручную. Я пока пытаюсь этого избежать. Если я вместо этого использую SQLdataSource, все это бесплатно.
Мне нужна общая итоговая строка, содержимое которой я отображаю за пределами gridview.
- Я знаю, что могу получить это, подключив событие RowBound в IIS и суммируя каждую строку, которую я вижу, но это кажется, но сложным и заурядным.
- Я знаю, что могу вручную создать SQLdataSource.Select в моем SQLdataSource (он кэширован), чтобы извлечь из него DataTable, а затем использовать DataTable.Compute для суммирования столбцов, но это кажется немного взломанным, и я не уверен, насколько эффективно два "select" действительно есть даже с кешированием.
Я предпочитаю, чтобы SQLserver выполнял базовую работу, используя Group By Rollup, которая дает мне последнюю строку набора результатов с итоговыми значениями, которые я хочу в ней. Проблема в том, что у меня есть итоговая строка в моем GridView, которую я не хочу там, так как мне нужно разместить итоги где-то еще (нет смысла размещать их на последней странице, где их можно сортировать и выгружать по страницам). Думаю, я мог бы снова поймать события, связанные со строкой, и сделать эту итоговую строку невидимой, но это немного взломано и может запутать разбиение на страницы.
Так что мне интересно, есть ли изящный способ сделать это?