【问题标题】:Calendar Selection日历选择
【发布时间】:2010-01-20 16:51:06
【问题描述】:

您好,

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

谢谢,

杰森

根据回复更新: 我并不完全清楚,因为根据我的要求,两个最初的答案都是正确的。在我的情况下,我只希望 JS 在执行 UpdatePanel 内控件的特定事件时运行,很抱歉造成混淆。

【问题讨论】:

    标签: asp.net javascript


    【解决方案1】:
    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
    }
    

    【讨论】:

    • 事后编辑很好,胜过我的;P。我会赞成它对变量的好主意。
    【解决方案2】:

    这是一篇很好的文章。我认为这正是您正在寻找的:

    http://blog.jeromeparadis.com/archive/2007/03/01/1501.aspx

    唯一需要注意的是,此示例适用于任何 ajax 回调,因此如果您有多个更新面板,无论哪个更新面板完成了往返等,它都会触发。

    【讨论】:

      【解决方案3】:

      感谢 KevinP 和 Darin 的回答。我实际上忘记了脚本管理器上的实例请求处理程序。不幸的是,在我的情况下,每次该人在日历控件中导航时,我都会触发 end_request。我承担责任,因为我不清楚所有要求。我对他们的两个答案都投了赞成票。这是我的最终解决方案。

      (请原谅我这是在 VB 中) Protected Sub 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
      

      在这种情况下,警报只会在日历中选择一周时显示,而不是在用户更改月份或执行与导航相关的其他操作时显示。

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

      【讨论】:

        猜你喜欢
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 2013-03-30
        • 2016-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多