达人显灵:Silverlight 如何获得页面里的dataset(datatable)?
前提:页面由于引用了特殊控件(和权限)等,所以页面数据集只能是dataset(datatable),SL如何实时动态获取这个dataset呢?
通过WebService或WCF中转?(这个问题可能是层窗户纸,其实就是如何传递这个DATASET(数据缓存)呢?)
[解决办法]
先把 DataTable 转为 Xml,这一步可以使用序列化,也可以自己写,然后把 Xml 传至 SL 端(这一步可以进行数据压缩以节省带宽),SL端得到Xml后,根据Xml定义动态类,然后从 Xml 中实例化动态类,最终得到 ObservableCollection<动态类> 。
生成动态类的代码我的blog中有
[解决办法]
首先要确认,Silverlight客户端没有相关类进行dataset处理,在服务器端可以使用datatable或者dataset,返回到客户端,只能是ObservableCollection集合。
明确获取数据集合后,再说“SL如何实时动态获取”,客户端实时动态获取,可以设置timer。 如果只是动态更新,只需要在相关契约成员中定义更改通知事件就可以了。