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

伙计们,我正在使用 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 刷新。


明月笑刀无情
浏览 274回答 2
2回答

慕田峪4524236

您实际上并不是刷新页面,而是提交表单,从而创建回发。在您的 Page_Load 中,如果数据是回发,则不会刷新数据。尝试将 javascript 更改为:<script>&nbsp; &nbsp;window.setTimeout(function() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;location.reload();&nbsp; &nbsp;}, 5000);</script>

红糖糍粑

我不知道你为什么每 5 秒重新加载一次页面Esko 的回答对您有用,但是你也可以通过Meta Refresh像这样的使用来刷新<head>&nbsp; <meta http-equiv="refresh" content="10"></head>我建议你这样做:<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>&nbsp; &nbsp; &nbsp;&nbsp;<asp:UpdatePanel runat="server" UpdateMode="Conditional">&nbsp; &nbsp; <ContentTemplate>&nbsp; &nbsp; &nbsp; &nbsp; <!-- your GridView in UpdatePanel -->&nbsp; &nbsp; </ContentTemplate>&nbsp; &nbsp; <Triggers>&nbsp; &nbsp; &nbsp; &nbsp; <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />&nbsp; &nbsp; </Triggers>&nbsp;</asp:UpdatePanel><asp:Timer ID="Timer1" runat="server" Interval="2000" OnTick="Timer1_Tick"></asp:Timer>后端代码:protected void Timer1_Tick(object sender, EventArgs e){&nbsp; &nbsp; // your code to refresh after some interval}
打开App,查看更多内容
随时随地看视频慕课网APP