首页 新闻 会员 周边 捐助

如何定时刷新silverlight里的datagrid?

0
悬赏园豆:10 [待解决问题]

我有一个项目是监控的,数据库的数据每秒中都在变化,我像在silverlight 的UI上也反应这样的变化,也就是每秒去数据库里面取数据,再来更新silverlight的datagrid。请问具体怎么做呢?我现在用RIA Service,不过不知道为什么不能更新。有谁有代码的例子吗?

小福仙的主页 小福仙 | 初学一级 | 园豆:190
提问于:2010-08-27 17:03
< >
分享
所有回答(2)
0
Astar | 园豆:40805 (高人七级) | 2010-08-27 17:12
0

你这里涉及到两段式更新模式,一是数据库到RIA Service,一是RIA Service到SilverLight.

有Pull和Push两种模式:

先说Pull,SilverLight 采用轮询的模式调用RIA Service以检索数据是否更新,如果已更新,则调用RIA Service重新获取数据,可以使用 HTTP Polling Duplex 绑定简化数据更新检索操作;

再说Push,使用WCF Callback契约,SilverLight向RIA Service订阅数据更新通知,RIA Service通过SqlDependency或OracleDependency向数据库订阅更新,当数据库有更新发生时,通知RIA Service,接下来分两种模式:

一,RIA Service收到更新通知后再调用SilverLight注册的回调接口通知SilverLight,SilverLight收到更新通知后,再调用RIA Service重新获取数据。

二,RIA Service收到更新通知后从数据库中查询出增量数据,然后调用SilverLight注册的回调接口,直接将增量数据推送给SilverLight,SilverLight收到增量数据后再更新自己的UI.

Launcher | 园豆:45050 (高人七级) | 2010-08-27 17:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册