无法在UpdatePanel内为计时器控件执行javascript
我在更新面板中有一个计时器控件,计时器应该执行一些javascript无法在UpdatePanel内为计时器控件执行javascript,javascript,.net,timer,updatepanel,registerstartupscript,Javascript,.net,Timer,Updatepanel,Registerstartupscript,我在更新面板中有一个计时器控件,计时器应该执行一些javascript <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <asp:UpdatePanel ID="ImagePanel" runat="server" UpdateMode="Conditional"> <Triggers> <a
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="ImagePanel" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" OnTick="SlideImages" Interval="4000"></asp:Timer>
<div id="slideshow" runat="server">
<div runat="server" id="currentImageDiv" class="current">
<img id="currentImage" src="" runat="server" class="slideImage current" />
<asp:Label runat="server" id="currentImageCaption" CssClass="caption"></asp:Label>
</div>
<div runat="server" id="nextImageDiv" class="next">
<img id="nextImage" src="" runat="server" class="slideImage next" />
<asp:Label runat="server" id="nextImageCaption" CssClass="caption"></asp:Label>
</div>
</div>
<asp:HiddenField runat="server" ID="slideIndexField" Value="1"/>
</ContentTemplate>
</asp:UpdatePanel>
代码隐藏:
protected void SlideImages(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(
Timer1,
Timer1.GetType(),
"SlideImages",
@"<script src='Scripts/jquery-1.10.1.min.js' type='text/javascript'></script>
<script type='text/javascript'>
alert('script executed');
</script>",
true);
}
受保护的无效幻灯片图像(对象发送方、事件参数e)
{
ScriptManager.RegisterStartupScript(
计时器1,
Timer1.GetType(),
“幻灯片图像”,
@"
警报(“脚本已执行”);
",
正确的);
}
但它似乎不起作用,我需要更改什么?您可以向Sys.WebForms.PageRequestManager.instance添加处理程序。结束请求事件 并直接调用客户端函数
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(endRequestHandler);
function endRequestHandler(){
alert('script executed');
}
哎哟,这个错误是RegisterStartupScript的最后一个参数:它必须设置为false,因为我已经包含了脚本标记。我使用下面的javascript代码在UpdatePanel中显示倒计时…,它可以工作
<script>
function startTimer() {
var xMinutes = 10 * 1,
duration = xMinutes;
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
//[not working]
// display.textContent = minutes + ":" + seconds;
//[working]
document.getElementById("xtime1").innerHTML = minutes + ":" + seconds;
if (--timer < 0) {
timer = duration;
gotomain();
}
}, 1000);
}
</script>
函数startTimer(){
变量xMinutes=10*1,
持续时间=X分钟;
var定时器=持续时间,分钟,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
//[不工作]
//display.textContent=分钟+“:”+秒;
//[工作]
document.getElementById(“xtime1”).innerHTML=minutes+“:”+seconds;
如果(--定时器<0){
定时器=持续时间;
gotomain();
}
}, 1000);
}