为了账号安全,请及时绑定邮箱和手机立即绑定

自动刷新页面,数据不更新

自动刷新页面,数据不更新

C#
明月笑刀无情 2021-08-07 16:54:56
伙计们,我正在使用 javascript 每 5 秒自动更新一次页面......但我注意到刷新正在工作,但它没有更新我的服务器端数据......所以数据网格应该更新,但事实并非如此。 .. 但如果我按 f5 则数据更新...这是我在标记中的 javascript。<script>    //refresh the page (without losing state)    window.setTimeout('document.forms[0].submit()', 5000); </script>(在头上)page load has all my data i need...   protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                if (DDLProduct.Items.Count == 0)                {                    BindDropDownList();                }                BizManager mgr = new BizManager();                mgr.CalcShiftPeriod();                //stores the bizmanager shiftstart to a backing field                _shiftStart = mgr.Shiftstart;                 _shiftEnd = mgr.Shiftend;#if DEBUG                //tests these values if program is in debug version.                _shiftStart = new DateTime(2013, 08, 27, 6, 00, 00);                 //dismisses if in release version                _shiftEnd = new DateTime(2013, 08, 27, 13, 59, 59); #endif                //passing in the params to the refreshdata method.                RefreshData(Product,  _shiftStart, _shiftEnd);            }        }所以本质上页面正在刷新,但数据不是,除非我执行 f5 刷新。
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

您实际上并不是刷新页面,而是提交表单,从而创建回发。在您的 Page_Load 中,如果数据是回发,则不会刷新数据。


尝试将 javascript 更改为:


<script>

   window.setTimeout(function() {

         location.reload();

   }, 5000);

</script>


查看完整回答
反对 回复 2021-08-07
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

我不知道你为什么每 5 秒重新加载一次页面


Esko 的回答对您有用,但是


你也可以通过Meta Refresh像这样的使用来刷新


<head>

  <meta http-equiv="refresh" content="10">

</head>

我建议你这样做:


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

<asp:UpdatePanel runat="server" UpdateMode="Conditional">

    <ContentTemplate>

        <!-- your GridView in UpdatePanel -->

    </ContentTemplate>

    <Triggers>

        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />

    </Triggers> 

</asp:UpdatePanel>

<asp:Timer ID="Timer1" runat="server" Interval="2000" OnTick="Timer1_Tick"></asp:Timer>

后端代码:


protected void Timer1_Tick(object sender, EventArgs e)

{

    // your code to refresh after some interval

}


查看完整回答
反对 回复 2021-08-07
  • 2 回答
  • 0 关注
  • 271 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信