обновить страницу автоматически, данные не обновляются - PullRequest
0 голосов
/ 12 июня 2018

Привет, ребята, поэтому я использую 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 ]

0 голосов
/ 12 июня 2018

Я не знаю, почему вы перезагружаете свою страницу каждые 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
}
0 голосов
/ 12 июня 2018

Вы фактически не обновляете страницу, а отправляете форму, следовательно, создаете обратную передачу.В вашей Page_Load вы не обновляете данные, если они возвращаются.

Попробуйте изменить javascript на:

<script>
   window.setTimeout(function() {
         location.reload();
   }, 5000);
</script>
...