日期:2014-05-18  浏览次数:20391 次

关于DataGrid动态刷新的问题
我在WebForm中有一个DataGrid控件,用来显示从数据库中查询的记录集。
我看到有个timer控件,是一个服务端控件,我在timer触发的函数中更新了DataGrid的数据源并重新作了BindData.
现在,我希望客户端能够动态的显示新的数据。
请各位帮帮我。
(不用刷新页面来实现)

------解决方案--------------------
不用刷新页面就只能用ajax从后台取数据显示
------解决方案--------------------
用UpdatePanel把DataGrid包起来,方式为异步,数据变更后,重新绑定DataGrid,并调用UpdatePanel.Update()方法

应该能行,我没试
------解决方案--------------------
用Ajax是可以的

我看到有个timer控件,是一个服务端控件,我在timer触发的函数中更新了DataGrid的数据源并重新作了BindData.
现在,我希望客户端能够动态的显示新的数据。
====================================
这个是根本不可行的,Http协议是无连接的,你这样操作相当于服务器定时和客户端通讯
------解决方案--------------------
<script> window.setTimeout( 'location.href=location.href ',120000); </script>
<meta http-equiv= "Refresh " content= "120 ">
------解决方案--------------------
最简单的实现就是套到iframe,然后定时刷新iframe
<meta http-equiv= "Refresh " content= "120 ">
------解决方案--------------------
我看到有个timer控件,是一个服务端控件,我在timer触发的函数中更新了DataGrid的数据源并重新作了BindData.
=======
1。
此方案不得行,Web服务器无法“推”数据给客户端,只有客户端请求,服务器才响应


2。
如果你是指定时自动刷新页面,只要简单的使用脚本控制:

<script type= "text/javascript ">
window.onload = function() {
window.setTimeout( "window.location.reload() ", 1000 * 1); // 每 1 秒刷新一次
}
</script>

3。
如果是无刷新整个页面加载 DataGrid 数据,那么考虑 AJAX
------解决方案--------------------
动态的显示新的数据估计是不可能的了
如果你需要无刷新加载DataGird数据,可以使用Ajax或者是VS2005中的回调函数CallBack