3

这是我的脚本:

 <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 秒刷新一次更新面板。但是在页面加载之后,只有一次我能够做到这一点。有什么我想念的吗?谢谢。

4

5 回答 5

0

尝试

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

安装点击

 var btn = document.getElementById('<%=myBtn.ClientID %>');         
             btn.click();   
于 2012-10-17T05:35:35.917 回答
0

为什么不试试 AJAX 定时器控制呢?这是一种以固定间隔回发的简单方法。

于 2012-10-17T05:25:54.777 回答
0

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

于 2012-10-17T03:10:47.380 回答
0

IsPostBack 表示页面已回传给自身

!IsPostBack 表示第一次加载页面时只是刷新页面,它不是从自己发布的

于 2012-10-17T03:26:06.677 回答
0

你为什么不使用 AJAX Timer 控件来代替。它将以简洁、简洁和高效的方式实现相同的目的。

无论如何, setTimeout() 和 setInterval() 的工作方式相同。

关键区别在于:

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

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

所以使用:

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

资料来源:jQuery - 忍者新手

于 2012-10-17T03:55:27.377 回答