这是我的脚本:
<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 秒刷新一次更新面板。但是在页面加载之后,只有一次我能够做到这一点。有什么我想念的吗?谢谢。
最佳答案
为什么不改用 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 - 忍者新手
关于c# - 固定间隔后刷新更新面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926523/