在.net中向客户端发送执行脚本(可以用在aspx.cs文件中)
最近给实习搞的死去活来…这次学的很安份,别用全才形容我,谁都受不起 .
今天发现可以用”RegisterStartupScript”在页面中向客户端发送脚本块,不能怪我大惊小怪, 有些情况下需要将JAVASCRIPT脚本和服务器端脚本代码相互结合使用,比如使用消息框动态现实服务器端的变量值,这时候就需要从服务器端向客户端页面动态添加脚本。所以这个就派上用场了
1.比如
try
{
SqlConnection conn=new SqlConnection(string myConnection);
}
catch(Exception ex)
{
//你想在在这里弹出对话框,提示用户发生异常得Message
//直接在aspx里面写实现不了吧?
string script=”JavaScript脚本”;
Page.RegisterStartupScript(“alert”,script);
}
2.Net2005中的警告处理
警告“System.Web.UI.Page.RegisterClientScriptBlock(string, string)”已过时:“The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202”
如果出现类似的警告,则应该这样处理:
如你的警告代码为:
RegisterClientScriptBlock(“”, “JavaScript脚本”);
目的是要新弹出页面。
可以改为:
ClientScript.RegisterStartupScript(this.GetType(), “”, “<script>window.open(‘../Issue/IssueAllComment.aspx’);</script>”);
3.RegisterStartupScript也可以输出html(尽管这个功能不是很常用)!下面就是使用RegisterStartupScript输出非脚本的例子: <%@ Page Language=”C#” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<script runat=”server”>
protected void Button1_Click( object sender, EventArgs e )
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), “”, “<h1>测试</h1>”);
}
</script>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head runat=”server”>
</head>
<body>
<form id=”form1″ runat=”server”>
<asp:Button ID=”Button1″ runat=”server” OnClick=”Button1_Click” Text=”单击测试” />
</form>
</body>
</html>