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