通过Timer加载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>
服务器端代码:
private void Timer_Tick(object sender, EventArgs args)
{
Timer1.Enabled = false;
//some code
}
protected void btnSaveEmployeePrevJobs_Click(object sender, EventArgs e)
{
// some code
}
问题:无法引发点击事件 点击按钮,基本上是计时器 启用(不知道为什么)并调用它 本身再次,而不是呼叫点击 事件..
提前致谢..
答案 0 :(得分:0)
我会使用jQuery代替,因为我认为100毫秒非常小,所以你的服务器端代码可能仍在加载并执行,在计时器滴答2次左右之后。
加载你的DOM,编写一个简单的jQuery函数来从你的服务器获取你的数据,把它填入你的页面,然后微笑:)
答案 1 :(得分:0)
您尝试过:
protected void Timer1_Tick(object sender, EventArgs e)
{
//Timer1.Enabled = false;
Label1.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString();
}
请注意,如果您要设置UpdateMode="Conditional"
,则需要明确调用UpdatePanel.Update()
;否则删除属性。
结帐:Tutorial: How to refresh an UpdatePanel control at a timed interval
答案 2 :(得分:0)
Atlast我解决了我的问题,这是viewstate(在会话中存储viewstate)和异步请求之间的冲突......它给了新的no。在回发上查看状态。
感谢您的时间......