Asp.net webform 局部刷新(定时)获取新数据

目前还有用到webform的同学应该经常会遇到想局部刷新GridView的功能,但是不知道该如何实现才好,很多人都想到UpdatePanel的方式,我今天就简单分享一下这个做法,想要用到UpdatePanel就离不开ScriptManager:

1、ScriptManager和UpdatePanel的简单了解
        ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果。其中的UpdatePanel就是设置页面中异 步局部更新区域,ScriptManger(脚本管理控件)提供客户端脚本生成与管理UpdatePanel的功能,通过使用ScriptManger能够进行整个页面的局部更新的管理,UpdatePanel必须依赖于ScriptManger。

       ScriptManger的位置要在form表单内,所有Updatepanel之上,而且只能在页面中被使用一次,也就是说每个页面只能使用一个ScriptManger控件,ScriptManger控件用来进行该页面的全局管理。创建一个ScriptManger控件后系统自动生成HTML代码,示例代码如下所示:

然后,将需要局部刷新的GridView放入到UpdatePanel中并且加上定时刷新的Timer,前台代码:


                      
                          
                          
                          
                              
                              
                              
                              ...
                              
                          
                      
                  

后台实现代码,ChuFangShenHeGrid_Load GridView的加载事件,timerTest的定时事件:

public void ChuFangShenHeGrid_Load(object sender, EventArgs e)
    {
        BindChuFangShenHeGrid(PageIndex);//数据绑定
    }
    protected void timerTest_Tick(object sender, EventArgs e)
    {
        ChuFangShenHeGrid_Load(sender, e);
    }

public void BindChuFangShenHeGrid(int pageIndex)
    {
        string StartTime = this.txtKaiFangRiQi1.Value;
        string EndTime = this.txtKaiFangRiQi2.Value;
        string KeyName = this.keyName.Value;
        string ShenHeState = this.selZhuangtai.Value;
        IHisYiZhuController menzShenHeList = new IHisYiZhuController();
        DataSet set = menzShenHeList.GetChuFangShenHeList(StartTime, EndTime, KeyName, ShenHeState);

        if (set != null && set.Tables.Count > 0)
        {
            AutoPaging1.RecordCount = set.Tables[0].Rows.Count;
            ChuFangShenHeGrid.CurrentPageIndex = pageIndex;
            ChuFangShenHeGrid.DataSource = set.Tables[0];
            ChuFangShenHeGrid.DataBind();
        }
    }

这样就实现简单的定时刷新数据了,有好的意见或建议,多多交流
 

你可能感兴趣的:(.net,C#,webform,局部刷新)