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代码,示例代码如下所示:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

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

<asp:UpdatePanel ID="updPanel" runat="server">
                      <ContentTemplate>
                          <asp:Timer ID="timerTest" runat="server" Interval="2000"
                              OnTick="timerTest_Tick">
                          </asp:Timer>
                          <asp:DataGrid ID="ChuFangShenHeGrid" runat="server" PageSize="12" AllowPaging="True" AutoGenerateColumns="False"
                              Width="100%" CssClass="Data" CellPadding="3" GridLines="None" OnItemDataBound="ChuFangShenHeGrid_ItemDataBound" OnLoad="ChuFangShenHeGrid_Load">
                              <AlternatingItemStyle CssClass="Data_AlternatingItem"></AlternatingItemStyle>
                              <ItemStyle CssClass="Data_Item"></ItemStyle>
                              <HeaderStyle CssClass="Data_Header"></HeaderStyle>
                              ...
                              <PagerStyle Visible="False"></PagerStyle>
                          </asp:DataGrid>
                      </ContentTemplate>
                  </asp:UpdatePanel>

后台实现代码,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();
        }
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丘鸣山进军Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值