固定间隔后刷新updatepanel

时间:2012-10-17 03:08:43

标签: c# javascript jquery asp.net

这是我的剧本:

 <script type="text/javascript">
    $(document).ready(
    function (){

        setTimeout('myFun()', 10000);
     });

    function myFun() {
        var btn = document.getElementById('<%=myBtn.ClientID %>');
        alert(btn);
        btn.click();
     }
</script>

我的标记:

<asp:UpdatePanel ID="upMain" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblValue" runat="server" Text=""></asp:Label>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="myBtn" EventName="Click" />
     </Triggers>
</asp:UpdatePanel>
<asp:Button ID="myBtn" runat="server" Text="hit" />

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        lblValue.Text = "0";
    }
    else
    {
        lblValue.Text = Convert.ToString(Convert.ToInt32(lblValue.Text) + 1);
    }
}

我需要每隔10秒刷新一次updatepanel。但是在页面加载之后,只有一次我能够实现这一点。有什么我想念的吗?感谢。

5 个答案:

答案 0 :(得分:0)

删除if (!IsPostBack),因此,它只更新一次,

答案 1 :(得分:0)

IsPostBack意味着该页面已回复给自己

!IsPostBack意味着您第一次加载刚刷新页面的页面时,它不是自己发布的

答案 2 :(得分:0)

为什么不使用AJAX Timer控件。它将以简洁明了的方式起到同样的作用。高效的方式。

反正, setTimeout()&amp; setInterval()的工作方式相同。

关键区别在于:

  • setTimeout 将等待指定的时间段,运行我们提供的代码,然后停止。
  • 另一方面,
  • setInterval 将等待,运行代码 - 然后再次等待并再次运行代码 - 永远重复(或直到我们告诉它停止)。

简而言之,setTimeout()仅在指定的时间间隔后运行提供的代码一次,而setInterval()再次运行代码&amp;在指定的间隔后再次。

所以使用:

<script type="text/javascript">     
$(document).ready(    
     function ()
     {          
             setInterval('myFun()', 10000);      
     });
     function myFun() 
     {         
             var btn = document.getElementById('<%=myBtn.ClientID %>');         
             alert(btn);
             btn.click();      
     } 
</script> 

来源:jQuery - Ninja的新手

答案 3 :(得分:0)

为什么不试试AJAX定时器控件?这是一种在一些固定时间间隔内回发的简单方法。

答案 4 :(得分:0)

尝试

   __dopostback('<%=myBtn.UniqueID%>',0);

而不是点击

 var btn = document.getElementById('<%=myBtn.ClientID %>');         
             btn.click();