/**/''' <summary>
''' 客户端指令码管理。
''' </summary>
Public Class TBScriptManagerClass TBScriptManager
/**/''' <summary>
''' 处理消息正文的跳脱字符。
''' </summary>
''' <param name="Message">消息正文。</param>
Private Function ParserMessage()Function ParserMessage(ByVal Message As String) As String
Dim sMessage As String
sMessage = Strings.Replace(Message, "'", "\'") '处理单引号
sMessage = Strings.Replace(sMessage, vbNewLine, "\n") '处理换行
Return sMessage
End Function
/**/''' <summary>
''' 取得讯问窗口的客户端指令码。
''' </summary>
''' <param name="Message">消息正文。</param>
Public Overloads Function GetConfirmScript()Function GetConfirmScript(ByVal Message As String) As String
Dim sMessage As String
Dim sScript As String
sMessage = ParserMessage(Message)
sScript = String.Format("if (confirm('{0}')==false) {{return false;}}", sMessage)
Return sScript
End Function
/**/''' <summary>
''' 取得讯问窗口的客户端指令码。
''' </summary>
''' <param name="Message">消息正文。</param>
''' <param name="TrueScript">响应 true 时要执行的客户端指令码。</param>
''' <param name="FalseScript">响应 false 时要执行的客户端指令码。</param>
Public Overloads Function GetConfirmScript()Function GetConfirmScript(ByVal Message As String, _
ByVal TrueScript As String, ByVal FalseScript As String) As String
Dim sMessage As String
Dim sScript As String
sMessage = ParserMessage(Message)
sScript = String.Format("if (confirm('{0}')){{ {1} }} else {{ {2} }}", sMessage, TrueScript, FalseScript)
Return sScript
End Function
/**/''' <summary>
''' 询问窗口。
''' </summary>
''' <param name="Message">消息正文。</param>
''' <param name="TrueScript">响应 true 时要执行的客户端指令码。</param>
''' <param name="FalseScript">响应 false 时要执行的客户端指令码。</param>
Public Sub Confirm()Sub Confirm(ByVal Message As String, ByVal TrueScript As String, ByVal FalseScript As String)
Dim sScript As String
sScript = GetConfirmScript(Message, TrueScript, FalseScript)
Me.RegisterStartupScript("Confirm", sScript)
End Sub
End Class
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Button1.OnClientClick = Me.BeeScript.GetConfirmScript("确定删除此笔数据吗?")
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load案例三:先执行伺服端程序再弹出询问讯息,依客户端响应再接续执行
Dim sScript As String
sScript = Me.BeeScript.GetConfirmScript("纯客户端的询问讯息?", "alert('按了确定')", "alert('按了取消')")
HyperLink1.Attributes("onclick") = sScript
End Sub
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click第二阶段在 Page Load 事件处理客户端询问讯息的响应「取得客户端响应决定是否送审(伺服端)」
Dim sTrueScript As String
Dim sFalseScript As String
'执行请假单储存的程序代码
'储存完成弹出询问讯息,__EVENTTARGET 设为 "SaveConfirm"
sTrueScript = "__doPostBack('SaveConfirm','True')"
sFalseScript = "__doPostBack('SaveConfirm','False')"
Me.BeeScript.Confirm("假单要送审吗?", sTrueScript, sFalseScript)
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'处理询问讯息的响应
Dim sEventTarget As String = Me.Request.Form("__EVENTTARGET")
Dim sEventArgument As String = Me.Request.Form("__EVENTARGUMENT")
If String.Equals("SaveConfirm", sEventTarget, StringComparison.CurrentCultureIgnoreCase) Then
If String.Equals(sEventArgument, "True", StringComparison.CurrentCultureIgnoreCase) Then
'按了确定要执行的程序代码
End If
If String.Equals(sEventArgument, "False", StringComparison.CurrentCultureIgnoreCase) Then
'按了取消要执行的程序代码
End If
End If
End Sub
【责任编辑: lanier】