利用UpdatePanel+Timer 控件自动更新Gridview的数据

来源:互联网 发布:白敬亭 演技 知乎 编辑:程序博客网 时间:2024/06/09 20:02

1、首先定义一个UpdatePanel控件,并在UpdatePanel控件的ContentTemplate里包含Timer控件和Gridview控件,将Timer控件设置为UpdatePanel控件的触发器,在Timer控件设置具体的时间间隔触发更新。

<asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate><asp:Timer ID="Timer1" runat="server" Interval="10000" ontick="timerTest_Tick">  </asp:Timer><asp:GridView>……..</asp:GridView>     </ContentTemplate><Triggers>     <asp:AsyncPostBackTrigger ControlID="Timer1"/>     </Triggers>   </asp:UpdatePanel>

2、在timerTest_Tick定时函数中重新对Gridview绑定数据。

   
 protected void timerTest_Tick(object sender, EventArgs e)    {        BindData();     //定时刷新    }    private void BindData()    {       SqlDataSource1.SelectCommand = @"SELECT A.taskId AS TaskID,      CASE A.taskType WHEN 1 THEN 'UploadProduct' WHEN 2 THEN 'UploadEngine' WHEN 3 THEN 'UploadPattern' WHEN 4 THEN 'UninstallProduct' WHEN 5 THEN 'UninstallEngine' WHEN 6 THEN 'UninstallPattern' WHEN 7 THEN 'RollbackProduct' WHEN 8 THEN 'RollbackEngine' WHEN 9 THEN 'RollbackPattern' ELSE Convert(varchar, A.taskType) END AS TaskType,       submitTime AS SubmitTime,       CONVERT(varchar(100), submitTime, 101) AS formatSubmitDate,       B.UserName AS Submitter,       C.UserName ASOPERATOR ,       A.description AS Description,       isLocked AS IsLocked,       finishTime AS FinishTime,       PreoprStatus= CASE preoprStatus                         WHEN 0 THEN 'Pending'                         WHEN 1 THEN 'Processing'                         WHEN 2 THEN 'Succeeded'                         WHEN 3 THEN 'Failed'                     END,                     oprStatus= CASE oprStatus                                    WHEN 0 THEN 'Pending'                                    WHEN 1 THEN 'Processing'                                    WHEN 2 THEN 'Succeeded'                                    WHEN 3 THEN 'Failed'                                END,                                process.name AS ProcessFROM view_task AS ALEFT JOIN aspnet_Users AS B ON A.submitterId=B.UserIdLEFT JOIN aspnet_Users AS C ON (A.operatorId=C.UserId                                AND A.operatorId IS NOT NULL)LEFT JOIN process ON A.processId=process.idWHERE A.isTerminated=0 AND (taskType=2     OR taskType=1     OR taskType=3     OR taskType=7     OR taskType=8     OR taskType=9)ORDER BY SubmitTime DESC";     GridView1.DataBind();    }




参考:http://blog.csdn.net/zhang_hui_cs/article/details/8113079

         http://www.cnblogs.com/Terrylee/archive/2006/11/14/Introduction_to_the_Timer_Control.html


0 0
原创粉丝点击