如果我得到我的数据集到一个DataTable中,然后我可以用它做,因为我喜欢,但我有手动处理排序,分页和缓存的复杂性。我现在试图避免这种情况。 如果我改为使用全部免费的SQL数据源。一个大页面的GridView,汇总和总计与SQLdataSource
我需要一个总的行,我在gridview外显示的内容。
- 我知道我可以通过在IIS中挂钩RowBound事件并总结我看到的每一行,但这似乎是一个复杂而行人。
- 我知道我可以在我的SQLdataSource(它被缓存)上手动执行一个SQLdataSource.Select从中提取一个DataTable,然后使用DataTable.Compute对列进行求和,但是这看起来有点破解,而且我没有确定两个“选择”实际上在高速缓存方面的效率如何。
我的首选方法是让SQLserver使用Group By Rollup来完成繁琐的工作,该工具为我提供了结果集的最后一行以及我想要的总计。问题是我的GridView中有总计行,我不想在那里,因为我需要把总数放在别的地方(没有意义让他们在最后一页,他们可以被排序和分页)。我想我可以再次捕获行绑定事件,并使这个总计行不可见,但这有点破解,可能会混淆分页。
所以我想知道是否有一个简洁的方法来做到这一点?
不是那么庞大,只是我想知道是否有一个简单的方法来获得容易放在那里(总卷起来),所以我可以将它显示在更有用的地方。这听起来好像没有。我可以用jQuery将它从那里转移出去,但这有点破绽。 三层架构?我可以做理论,但这是实践;-) – philw 2011-09-15 21:39:43
嗯,我只是指出,这是一个不好的做法。这里的答案非常好。 http://stackoverflow.com/questions/6630291/asp-net-sqldatasource-vs-doing-it-in-code-behind。 ASPX的臭名昭着,因为它是单元测试。添加sqldatasource控件只是对伤害的侮辱,而且这种做法在任何严肃的事情中都很少使用。 – 2011-09-23 02:06:44
也许我不清楚 - 我*不*要求在软件架构方面的经验教训或辩论,无论如何是好的。 – philw 2011-10-29 16:07:13