首先就我个人而言,我最常用的第一种方法是:

      Response.Write("<script>alert('');</script>");

       Response.Write("<script  Type='javaScript'>alert();</script>");

例如:
Response.Write("<script>alert('账户已注册,请重新注册')</script>");

这种方法他是先服务端后客户端,当其执行完,我们查看html源文件会发现"<script  Type='javaScript'>alert();</script>"出现在源文件的最前门。他总是在html界面渲染前执行。所以你会发现当执行它时的页面都是空白的,就因为html页面还没加载。

  这种方法的缺点是:它无法调用脚本文件中的自定义函数,只能调用内部函数。如果想要调用自定义的函数,则只能在response.write()上写自定义函数。比如Response.Write("<script  type='text/javascript'>function(){.........}</script>");

方法2

例如2:
 ClientScriptRegisterStartupScript(ClientScript.GetType(),"myScript","<script>MyFun();</script>")
 ClientScriptRegisterStartupScript(ClientScript.GetType(),"myScript","<script>alert('Please  Drop it!');</script>");

这种方法则比第一种简单多了。它可以直接调用脚本自定义函数,并且可以在任何地方使用,前面说了Response.Write()是先Server后Client,,而ClientScriptRegisterStartupScript()则是先Client后Server。执行结束后在html源文件会发现它在html的最后加载了其调用的javascript语句。同时你在执行时也发现总是界面先加载它在执行。即html界面先渲染然后再执行其中的语句。

方法3

OnClientClick(vs2003不支持,其实我也知道,因为我没用过03,反正是话说不能用,呵呵)

<asp:Button ID ="button1" Runat="Server" text ="button" OnClientClick ="client_click()"  OnClick="Button_Click"/>
 
 client_Click()就是javascript的一个方法,它是一个前台方法,可以替换成一般的脚本如: return confirm('确定要删除吗?');

方法4

               Button1.Attributes.Add(" "return Client_Click()"); 通过添加属性的方法来调用。

方法5

ClientScript.RegisterStartupScript  此方法比较灵活

StringBuilder str  = new StringBuilder();
str.Append("<script language='javaScript'>");
str.Append("Button1_Click('"+ServerPath+"')");
str.append("</script>");
ClientScript.RegisterStartupScript(this.GetType(),"LoadScript”,str.ToString());