PrivateSub alert_client()Sub alert_client(ByVal message AsString, ByVal delay AsInteger, OptionalByVal FocusControl As Control =Nothing, OptionalByVal AddScript AsString=Nothing, OptionalByVal IsUrl AsBoolean=False) Dim s AsString, msg AsString, MsgID AsString Dim sb AsNew System.Text.StringBuilder(message) sb.Replace(vbCrLf, "") sb.Replace("'", "'") sb.Replace("""", """") msg = sb.ToString() MsgID = UniqueMessageID() s ="<script language='javascript'>"& vbCrLf s +="function "& MsgID &"()"& vbCrLf s +="{"& vbCrLf s +="alert("""& msg &""");"& vbCrLf IfNot FocusControl IsNothingThen s +="window.document.all['"& FocusControl.ClientID.ToString() &"'].focus();"& vbCrLf IfString.Compare(FocusControl.GetType.ToString, "System.Web.UI.WebControls.LinkButton") <>0Then s +="window.document.all['"& FocusControl.ClientID.ToString() &"'].select();"& vbCrLf EndIf EndIf IfNot AddScript IsNothingThen If IsUrl Then s +="window.location='"& AddScript &"';"& vbCrLf Else s += AddScript & vbCrLf EndIf EndIf s +="}"& vbCrLf s +="//-->"& vbCrLf If delay =0Then s += (MsgID &"();") Else s +="window.setTimeout("& MsgID &","& delay &");"& vbCrLf EndIf s +="</script>"& vbCrLf Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), MsgID, s) End Sub
二、服务器生成confim
message :消息内容
PostButton :关闭对话框之后触发的页面postback事件
AddScript :关闭对话框之后页面处罚的事件
ProtectedFunction confirm()Function confirm(ByVal message AsString, ByVal PostButton As Button, OptionalByVal AddScript AsString=Nothing) AsBoolean Dim s AsString, msg AsString, MsgID AsString Dim sb AsNew System.Text.StringBuilder(message) sb.Replace(vbCrLf, "") sb.Replace("'", "'") sb.Replace("""", """") msg = sb.ToString() MsgID = UniqueMessageID() s ="<script language='javascript'>"& vbCrLf s +="<!--"& vbCrLf s +="/* Client Alert Function"& vbCrLf s +=" CopyRight APJCorp.com"& vbCrLf s +=" Author:bss (Bianshusen@apjcorp.com)"& vbCrLf s +=" Date: 2004-8-24"& vbCrLf s +="*/"& vbCrLf s +="function "& MsgID &"()"& vbCrLf s +="{"& vbCrLf s +="var b;"& vbCrLf s +="b=false;"& vbCrLf s +="b=confirm("""& msg &""");"& vbCrLf s +="if (b==false)"& vbCrLf s +="{"& vbCrLf s +=" return false;"& vbCrLf s +="}"& vbCrLf s +="else"& vbCrLf s +="{"& vbCrLf s +=" __doPostBack('"& PostButton.UniqueID &"','') ;"& vbCrLf s +="}"& vbCrLf IfNot AddScript IsNothingThen s += AddScript & vbCrLf EndIf s +="}"& vbCrLf s +="//-->"& vbCrLf s +="window.setTimeout("& MsgID &",10);"& vbCrLf s +="</script>"& vbCrLf 'Me.Page.RegisterClientScriptBlock(MsgID, s) Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), MsgID, s) ReturnTrue End Function
相关代码:
ProtectedSub alert()Sub alert(ByVal message AsString, ByVal FocusControl As Control, OptionalByVal delay AsInteger=10, OptionalByVal AddScript AsString=Nothing, OptionalByVal IsUrl AsBoolean=False) alert_client(message, delay, FocusControl, AddScript, IsUrl) End Sub ProtectedSub alert()Sub alert(ByVal message AsString, OptionalByVal delay AsInteger=10, OptionalByVal AddScript AsString=Nothing, OptionalByVal IsUrl AsBoolean=False) alert_client(message, delay, , AddScript, IsUrl) End Sub ProtectedFunction UniqueMessageID()Function UniqueMessageID(OptionalByVal id AsInteger=1) AsString Const MessageName AsString="__MessageBox" IfNotMe.Page.ClientScript.IsClientScriptBlockRegistered(MessageName & id.ToString) Then Return MessageName & id.ToString Else Return UniqueMessageID(id +1) EndIf End Function