1 下面的示例说明如何将 RegisterClientScriptBlock 方法与 IsClientScriptBlockRegistered 方法配合使用。如果尚未注册用代码声明块编写的 ECMAScript(如 IsClientScriptBlockRegistered 测试的那样),则将发出 RegisterClientScriptBlock 调用。 [Visual Basic] <html> <head> <script language="VB" runat="server"> Sub Page_Load( sender as Object,e as EventArgs) 'Form the script that is to be registered at client side. Dim scriptString as String = "<script language=JavaScript> function DoClick() {" scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<" scriptString += "/" scriptString += "script>" If(Not IsClientScriptBlockRegistered("clientScript")) RegisterClientScriptBlock("clientScript", scriptString) End If End Sub </script> </head> <body topmargin="20" leftmargin="10"> <form id="myForm" runat="server"> <input type="text" id="show" style="width=200"> <input type="button" value="ClickMe" οnclick="DoClick()"> </form> </body> </html> [C#] <html> <head> <script language="C#" runat="server"> public void Page_Load(Object sender, EventArgs e) { // Form the script that is to be registered at client side. String scriptString = "<script language=JavaScript> function DoClick() {"; scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<"; scriptString += "/"; scriptString += "script>"; if(!this.IsClientScriptBlockRegistered("clientScript")) this.RegisterClientScriptBlock("clientScript", scriptString); } </script> </head> <body topmargin="20" leftmargin="10"> <form id="myForm" runat="server"> <input type="text" id="show" style="width=200"> <input type="button" value="ClickMe" οnclick="DoClick()"> </form> </body> </html> 2 最简单的用法 .RegisterStartupScript("<script language=javascript></script>"); 直接写js代码就可以了 3 我的写法 public static void MessageBox( Page page, string msg ) { StringBuilder StrScript = new StringBuilder(); StrScript.Append( "<script language=javascript>" ); StrScript.Append( "alert('"+ msg +"');" ); StrScript.Append( "</script>" ); if ( ! page.IsStartupScriptRegistered( "MessageBox" ) ) { page.RegisterStartupScript( "MessageBox", StrScript.ToString() ); } } 4 我是写一个类封装了所有可能要用的方法: using System; using System.Web; using System.Web.UI; namespace SHBT { /// <summary> /// Alert 的摘要说明。 /// </summary> public class Alert { public Alert() { // // TODO: 在此处添加构造函数逻辑 // } private static string scriptbegin = "<script language=/"JavaScript/">"; private static string scriptend = "</script>"; /// <summary> /// 弹出对话框 /// </summary> /// <param name="content"></param> public static void ShowAlert(string content) { string alertcontent = "alert('" + content + "');"; alertcontent = scriptbegin + alertcontent + scriptend; Page p = (Page)System.Web.HttpContext.Current.Handler; p.RegisterStartupScript("alert",alertcontent); } /// <summary> /// 执行脚本 /// </summary> /// <param name="content"></param> public static void ExeScript(string content) { content = scriptbegin + content + scriptend; Page p = (Page)System.Web.HttpContext.Current.Handler; p.RegisterStartupScript("Script",content); } /// <summary> /// 执行脚本 /// </summary> /// <param name="content"></param> public static void ExeScriptBlock(string content) { content = scriptbegin + content + scriptend; Page p = (Page)System.Web.HttpContext.Current.Handler; p.RegisterClientScriptBlock("Script",content); } } } 别的类中可以直接调用里面的静态方法非常方便。