有一个DataGrid绑定了数据库,当数据库的数据有改变时(比如说有新数据加入),DataGrid能实时更新,请问如何实现?听说可以用XMLHTTP来实现?但对XMLHTTP我不熟,麻烦各位大侠帮帮忙,指教一下,如何能实现DataGrid的实时更新,最好能给个例子参考一下,谢谢了!!!!

解决方案 »

  1.   

    没有办法在原有页面重新绑定,只能通过一些其他方法。
    用IFRAME,让该页面刷新,判断有无新数据,有则通过IFRAME的脚本更新前台数据或让前台页面刷新一次
      

  2.   

    我想这个问题,只能用定时刷新了。要不然,是无法检测到数据库是否更新了。不过你可以换个思路,既然你定时刷新时,会闪烁很大,你可以在某一下区域实现定时刷新,把新的结果取出来,然后在前端用脚本实现DATAGRID的内容更新。
      

  3.   

    绑定到dataview,在保存的同时dataview也相应有一条新的
      

  4.   

    可以通过IFRAME实现页面的局部刷新
      

  5.   

    麻烦请问一下IFRAME怎么用啊..能不能给个利子看一下呀
      

  6.   


    <xml id=xmlData src="http://localhost/WebService/LoadData/FeaturedService.asmx/GetScores"></xml><div id=divDataList>
    <table datasrc=#xmlData width="500"  border="0" width="70%"   cellspacing="1" cellpadding="1" showalign="left" style="line-height: 140%">
    <thead>
    <tr bgcolor="#0033CC" style="color: #ffffff">
    <td width="13%" nowrap>赛事名</td>
    <td width="3%" nowrap>對賽隊伍</td>
    <td width="25%">比分</td>
    <td width="10%" nowrap>對賽隊伍</td>
    <td width="25%">半場</td>
    <td width="13%" nowrap>比赛状态</td>
    </tr>
    </thead>
    <tbody>
    <tr bgcolor="#0033CC" style="color: #ffffff">
    <td width="13%" nowrap><span datafld=MatchName></span></td>
    <td width="13%" nowrap><span datafld=MatchTime></span></td>
    <td width="11%"  nowrap><span datafld=HostTeam></span></td>
    <td width="3%" nowrap><span datafld=MatchScore></span></td>
    <td width="25%"><span datafld=CustomerTeam></span></td>
    <td width="10%" nowrap><span datafld=HalfScore></span></td>
    <td width="25%"><span datafld=MatchState></span></td>
    </tr>
    </tbody>
    <tfoot>
    </tfoot>
    </table>
    </div>
    <div id=divWaitMsg>
    请稍候,正在更新数据
    </div>
    <script language=javascript>
    function ShowDataList()
    {
    divDataList.style.display="";
    divWaitMsg.style.display="none";
    setTimeout(GetNewData,10000);
    }
    function GetNewData()
    {
    divDataList.style.display="none";
    divWaitMsg.style.display="";
    xmlData.src=xmlData.src;
    }
    </script>
    这样,WEBSERVICE修改为:
    [WebMethod]
    public string GetScores()
    {
    string connectionString="Server=Root;database=kakai;User id=sa;password=201080";
    SqlConnection conn;
    conn=new SqlConnection(connectionString);
    string SQL;
    SqlDataAdapter Adpt;
    DataSet ds;
    SQL="Select MatchName,MatchTime, HostTeam,CustomerTeam,MatchScore,HalfScore,MatchState From ShowScores where MatchDate='11月8日'";
    Adpt=new SqlDataAdapter(SQL,conn);
    ds=new DataSet();
    Adpt.Fill(ds,"ShowScores");
    return ds.xml;
    }
    这个代码不完全正确(没有调试),但给出了不使用WEBSERVICE.HTC的解决方案,具体请参考网站:http://www.newart2.com/SucCase.Asp
      

  7.   

    页面的定时刷新肯定是不行,闪硕太大了,而且太频繁刷新也不好,时间长了,数据更新又慢了没有办法在原有页面重新绑定,只能通过一些其他方法。
    用IFRAME,让该页面刷新,判断有无新数据,有则通过IFRAME的脚本更新前台数据或让前台页面刷新一次
      

  8.   

    colinliu(流浪人) 麻烦问下IFRAME怎么用啊,我以前没有用过,能给个例子看一下吗
    goody9807()大哥,你给的网址打开是个广告公司的啊!!!!
      

  9.   

    定时刷新吧,做个timer控件,然后判断数据库里有没新数据,重新绑定,或者用datatable的add进行添加。
      

  10.   

    用iframe定时刷新,或者用timer控件
      

  11.   

    用cache啊,当数据库中表改变时,用触发器生成一个htm文件,然后对cache设定,当htm文件改变时重新生成缓存,这样只有当表改变时才会发生改变
      

  12.   

    为什么人都这么变态,刷新是正常的。不刷新不正常!
    建议你用  goody9807() 
    的方法