问候,
今天早上可能有一个大脑放屁,但我需要一种方法在ASP .NET Ajax更新面板内发生的操作结束时执行一些JavaScript。如何实现这一目标?
谢谢,
杰森
根据回复更新: 我并不完全清楚,因为根据我的要求,两个初始答案都是正确的。在我的情况下,我只想要在执行UpdatePanel内部控件的特定事件时运行JS,对不起存在困惑。
答案 0 :(得分:2)
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);
function endRequest(sender, args) {
// Executed when ajax request finishes, you could check the sender variable
// in order to identify which update panel fired the request
}
答案 1 :(得分:1)
这是一篇很好的文章。我认为这正是您所寻找的:
http://blog.jeromeparadis.com/archive/2007/03/01/1501.aspx
唯一需要注意的是,此示例适用于任何ajax回调,因此如果您有多个更新面板,无论哪一个已完成往返,都会触发。
答案 2 :(得分:0)
感谢KevinP和Darin的回答。我实际上已经了解了脚本管理器上的实例请求处理程序。不幸的是,在我的情况下,每当人在日历控件中导航时,我都会触发end_request。我承担责任,因为我不清楚所有要求。我赞同他们的两个答案。这是我的最终解决方案。
(原谅我这是在VB中) 受保护的子mainCalendar_SelectionChanged(ByVal sender As Object,ByVal ev As EventArgs) Dim dtStart As DateTime = mainCalendar.SelectedDates(0) Dim dtEnd As DateTime = mainCalendar.SelectedDates(6)
Dim alertString As String = _
String.Format(
"alert('{0}');", dtStart.ToString("d") + " - " + dtEnd.ToString("d")
)
scriptManager.RegisterStartupScript(upCalendar, GetType(String), _
"alert", alertString, True)
End Sub
在此上下文中,警报仅在日历中选择一周时显示,而不是在用户更改月份或执行与导航相关的其他操作时显示。
再次感谢两位响应者的帮助