我在更新面板中使用 ajax 计时器控件。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick"></asp:Timer>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
计时器应每秒使用当前日期时间更新标签。
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
在调试模式下一切正常,但是当我在没有调试器 (CTRL+F5) 的情况下运行站点时,或者如果我将站点部署到我的服务器,计时器不会滴答作响。
但是当我将"debug=true"添加到web.config时,一切正常。即使在我的服务器上。
<compilation targetFramework="4.0" debug="true">
Internet Explorer 在 ScriptResource.axd 中抛出异常"对象不支持此操作"。
如何解决此问题?
编辑:我想我已经解决了。
我不知道为什么,但有两件事可以解决这个问题:
- 使用 ScriptManager
- 而不是 ToolScriptManager
- 将 ToolScriptManager 与 CombineScripts="false" 一起使用
我不知道这是否是一个错误。
也许有人可以解释一下。
最新的 AJAX 控件工具包中似乎有一个错误 - 我自己刚刚遇到过这个错误 - 似乎唯一的选择是降级到以前的版本。
https://ajaxcontroltoolkit.codeplex.com/workitem/27639 和 http://forums.asp.net/t/1962717.aspx?Timer+and+Script+Combining+w+ToolkitScriptManager
为了解决当前问题,我必须在调试模式下运行,直到我可以降级和测试。
我有用。
Using the ToolScriptManager with CombineScripts="false"