【讨论】DataSet分页传输;手机客户端异步调用显示进度条
最近在做基于Web Service的3G手机应用,平台的用的是.Net(ASP.NET Web服务+Windows Mobile6.5),两个问题,如下:
1.使用DataSet进行大数量传输时,如果一次性把所有数据取出来传给手机端势必效率极低而且浪费流量,如何实现分页传输?
以我的理解,数据从数据库中取出来后生成DataSet先存放在Server的内存中,序列化为XML后发送到客户端,客户端收到XML解析显示。那么是否可以将Server端的DataSet放到Session中(以保证不会被当作垃圾收回),然后再定义一个DataSet对象,用Session中的DataSet的子集填充它,然后将这个小的DataSet传给客户端,客户端请求下一页就再传一个同等大小的子集,以此实现分页?
注:数据层是封装好的,无法分页查询……客户端不使用复杂数据控件(GridView之类)……
2.如何实现进度条效果,当Server端正在进行处理尚未返回结果时显示进度条效果,返回结果后进度条消失做出响应?貌似用异步调用,不是很懂,请高手指教!
PS:如果使用GrivdView并设置分页属性,它是否是在点击下一页之后才去Server端取下一页数据的?