【发布时间】:2011-04-14 07:11:11
【问题描述】:
如果我将我的数据集放入 DataTable 中,那么我可以随心所欲地使用它,但是我需要手动处理排序、分页和缓存的复杂性。我现在正试图避免这种情况。 如果我改为使用完全免费的 SQLdataSource。
我需要一个总计行,其内容显示在网格视图之外。
- 我知道我可以通过在 IIS 中挂钩 RowBound 事件并总结我看到的每一行来实现这一点,但这似乎很复杂且行人。
- 我知道我可以在我的 SQLdataSource(它已缓存)上手动执行 SQLdataSource.Select 以从中提取 DataTable,然后使用 DataTable.Compute 对列求和,但这似乎有点 hack 而我不是确定即使使用缓存,两个“选择”的效率有多高。
我首选的方法是让 SQLserver 使用 Group By Rollup 来完成繁重的工作,这会为我提供结果集的最后一行,其中包含我想要的总数。那么问题是我的 GridView 中有总计行,我不希望将总计行放在那里,因为我需要将总计放在其他地方(没有必要将它们放在可以对它们进行排序和分页的最后一页)。我想我可以再次捕获行绑定事件并使此总计行不可见,但这有点 hack 并且可能会混淆分页。
所以我想知道是否有一种巧妙的方法可以做到这一点?
【问题讨论】:
标签: c# asp.net sql-server gridview sqldatasource