这是我的剧本:
<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。但是在页面加载之后,只有一次我能够实现这一点。有什么我想念的吗?感谢。
答案 0 :(得分:0)
删除if (!IsPostBack)
,因此,它只更新一次,
答案 1 :(得分:0)
IsPostBack意味着该页面已回复给自己
!IsPostBack意味着您第一次加载刚刷新页面的页面时,它不是自己发布的
答案 2 :(得分:0)
为什么不使用AJAX Timer控件。它将以简洁明了的方式起到同样的作用。高效的方式。
反正, setTimeout()&amp; 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();