日历选择

时间:2010-01-20 16:51:06

标签: asp.net javascript

问候,

今天早上可能有一个大脑放屁,但我需要一种方法在ASP .NET Ajax更新面板内发生的操作结束时执行一些JavaScript。如何实现这一目标?

谢谢,

杰森

根据回复更新: 我并不完全清楚,因为根据我的要求,两个初始答案都是正确的。在我的情况下,我只想要在执行UpdatePanel内部控件的特定事件时运行JS,对不起存在困惑。

3 个答案:

答案 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

在此上下文中,警报仅在日历中选择一周时显示,而不是在用户更改月份或执行与导航相关的其他操作时显示。

再次感谢两位响应者的帮助