如果我将数据集导入DataTable,那么我可以随意使用它,但我手动处理排序,分页和缓存的复杂性。我现在正试图避免这种情况。 如果我改为使用一个完全免费的SQLdataSource。
我需要一个总行,我在gridview之外显示其内容。
我首选的方法是让SQLserver使用Group By Rollup进行繁琐的工作,它给出了结果集的最后一行以及我想要的总数。问题是我在GridView中有总计行,我不想在那里,因为我需要将总数放在其他地方(没有必要将它们放在最后一页,可以对它们进行排序和分页)。我想我可以再次捕获行绑定事件并使这个总行不可见,但这有点黑客并且可能会混淆分页。
所以我想知道是否有一种巧妙的方法可以做到这一点?
答案 0 :(得分:0)
当你的意思是大数据集时,我假设一百万加?
我建议缓存总计的结果。每次查看/分页时都无需重新计算。创建/更新/删除表以刷新总计信息时创建可观察事件? (因为我没有看到你提到过滤,这是唯一一次没有数据集更改的总计更改)
或者可能有定时到期缓存的总计信息。如果数据足够大且不稳定,有时您将不得不考虑具有精确的最新总数的商业价值。通常没有商业价值。几秒钟之前的价值已经足够接近了。
对于SqlDataSource控件,我个人讨厌它。无论演示文稿/逻辑/数据层发生了什么?!...