.net 在C中使用Updatepanel和计时器延迟加载#

.net 在C中使用Updatepanel和计时器延迟加载#,.net,asp.net,c#-4.0,asp.net-ajax,.net,Asp.net,C# 4.0,Asp.net Ajax,通过计时器加载updatepanel后,我无法从updatepanel发出任何异步请求 aspx代码示例: <asp:UpdatePanel runat="server" UpdateMode="Conditional"> <ContentTemplate> <%--The Timer that causes the partial postback--%> <asp:Timer runat="server" Interval="100

通过计时器加载updatepanel后,我无法从updatepanel发出任何异步请求

aspx代码示例:

<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>

    <%--The Timer that causes the partial postback--%>
    <asp:Timer runat="server" Interval="100" OnTick="Timer_Tick" Id="Timer1"/>                

    <asp:ImageButton ID="btnSaveEmployeePrevJobs" runat="server" ImageAlign="AbsBottom"
    ImageUrl="~/Images/saveOff.gif" onmouseout="this.src='../Images/saveOff.gif'"
    onmouseover="this.src='../Images/saveOn.gif'" OnClick="btnSaveEmployeePrevJobs_Click"/>

</ContentTemplate>
问题:无法引发单击事件 按一下按钮,基本上计时器就会 启用(不知道为什么)并调用 再次调用它自己,而不是调用click 事件


提前感谢..

我会改用jQuery,因为我认为100毫秒非常小,所以在计时器计时2次左右之后,服务器端代码可能仍在加载并被执行

加载您的DOM,编写一个简单的jQuery函数从服务器获取数据,在页面中填充数据,然后微笑:)

您尝试过:

protected void Timer1_Tick(object sender, EventArgs e)
{
    //Timer1.Enabled = false;
    Label1.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString();
}
请注意,如果要设置
UpdateMode=“Conditional”
,则需要显式调用
UpdatePanel.Update()
;否则,请删除该属性


签出:

至少我已经解决了我的问题,这是viewstate(在会话中存储viewstate)和异步请求之间的冲突。。。它在回发时为ViewState提供了新的编号


感谢您的时间…

我正在优化现有代码,它是基于UpdatePanel构建的,因此使用jquery将是一个巨大的变化(
protected void Timer1_Tick(object sender, EventArgs e)
{
    //Timer1.Enabled = false;
    Label1.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString();
}