在VB代码中调用JavaScript ClientSidePage 代码实例

Public Class ClientSidePage
    Inherits System.Web.UI.Page

    Public Sub DisplayAlert(ByVal message As String)
        RegisterClientScriptBlock(Guid.NewGuid().ToString(), _
                 "<script language=""JavaScript"">" & GetAlertScript(message) & "</script>")
    End Sub

    Public Function GetAlertScript(ByVal message As String) As String
        Return "alert('" & message.Replace("'", "/'") & "');"
    End Function

    Public Sub GiveFocus(ByVal c As Control)
        RegisterClientScriptBlock("CSP-focus-function", _
                    "<script language=""JavaScript"">" & vbCrLf & _
                    "function CSP_focus(id) {" & _
                    "  var o = document.getElementById(id); if (o != null) o.focus(); " & _
                    "}" & vbCrLf & _
                    "</script>")

        RegisterStartupScript("CSP-focus", "<script language=""JavaScript"">CSP_focus('" & c.ClientID & "');</script>")
    End Sub

    Public Sub DisplayPopup(ByVal url As String, ByVal options As String)
        RegisterStartupScript(Guid.NewGuid().ToString(), _
                "<script language=""JavaScript"">" & GetPopupScript(url, options) & "</script>")
    End Sub

    Public Function GetPopupScript(ByVal url As String, ByVal options As String) As String
        Return "var w = window.open(""" & _
                         url & """, null, """ & options & """);"
    End Function

    Public Sub CloseWindow(Optional ByVal refreshParent As Boolean = False)
        RegisterClientScriptBlock("CSP-close-popup", "<script language=""JavaScript"">" & GetCloseWindowScript(refreshParent) & "</script>")
    End Sub

    Public Function GetCloseWindowScript(Optional ByVal refreshParent As Boolean = False) As String
        Dim script As String
        If refreshParent Then
            script &= "window.opener.location.reload();"
        End If

        Return "self.close();"
    End Function

    Protected Sub RegisterOnchangeScript()
        If Not IsClientScriptBlockRegistered("CSP-onchange-function") Then
            RegisterClientScriptBlock("CSP-onchange-function", "<script language=""JavaScript"">" & _
                     "var isDirty= false;" & vbCrLf & _
                     "function CSP_checkForChange(msg) {" & vbCrLf & _
                     "  if (isDirty) return confirm(msg); else return true;" & vbCrLf & _
                     "}" & vbCrLf & _
                  "</script>")
        End If
    End Sub

    Public Sub MonitorChanges(ByVal c As WebControl)
        RegisterOnchangeScript()
        If TypeOf c Is CheckBox Or TypeOf c Is CheckBoxList Or TypeOf c Is RadioButtonList Then
            c.Attributes("onclick") = "isDirty = true;"
        Else
            c.Attributes("onchange") = "isDirty = true;"
        End If
    End Sub

    Public Sub ConfirmOnExit(ByVal c As WebControl, ByVal message As String)
        RegisterOnchangeScript()
        c.Attributes("onclick") = "return CSP_checkForChange('" & message.Replace("'", "/'") & "');"
    End Sub

    Public Sub ConfirmOnChange(ByVal ddl As DropDownList, ByVal message As String)
        'Register the script block
        If Not IsStartupScriptRegistered("CSP-ddl-onchange") Then
            RegisterStartupScript("CSP-ddl-onchange", _
                "<script language=""JavaScript"">" & _
                "var CSP_savedDDLID = document.getElementById('" & ddl.ClientID & "').value;" & vbCrLf & _
                "function resetDDLIndex() {" & vbCrLf & _
                "   document.getElementById('" & ddl.ClientID & "').value = CSP_savedDDLID;" & vbCrLf & _
                "}" & vbCrLf & _
                "</script>")
        End If

        ddl.Attributes("onchange") = "if (!confirm('" & message.Replace("'", "/'") & "')) resetDDLIndex(); else "
    End Sub
End Class

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值