当我采用动态sql绑定datagrid分页的时候,遇到一个很难抉择的问题。
动态sql绑定datagrid分页的大致原理:首次加载,遍历数据表获取总记录数,之后每次翻页根据储存的(而不是再次遍历数据表获取)总记录数和当前页索引灵活生成最优化的sql与datagrid绑定。
目前遇到的问题:由于分页控件采用的url传值(例"?page=12"),所以对于页面本身来说,每一次都是第一次加载(!IsPostBack),因此导致每一次都遍历数据表获取总记录数,这和我的初衷大相径庭的,郁闷。
问题解决设想:用session保存总页数,页面加载过程中判断是否存在session总页数并遍历数据表获取或者直接获取session值。
弊端:对于整站每个类型的查询都建立session,即占用服务器资源又容易引起session混淆(在同时浏览两个分类列表时)。
郁闷中...
想听听大家讨论,希望能够有个好的解决方法~