ASP.NET服务端添加客户端事件
ASP.NET服务器控件可以发送两种客户端脚本:
1、客户端脚本块:客户端脚本块通常是用JavaScript编写的,其中通常包含在发生特定的客户端事件时执行的函数。
发送脚本块的方法是使用System.Web.UI.Page类包含的两个方法可以将客户端代码发送到由ASP.NET Web页面提供的HTML中:
(1)、RegisterStartupScript(key,script):在Web窗体的结尾处(在</form> 标记之前)发送脚本块。
(2)、RegisterClientScriptBlock(key,script):在Web窗体的开始处(紧接着<form runat="server">标识之后)发送脚本块。
//判断是否已经注册了,在大量使用时有用 if (!Page.ClientScript.IsClientScriptBlockRegistered("Common")) { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Common", "<script>alert('1')</script>"); } if (!Page.ClientScript.IsClientScriptBlockRegistered("Common1")) { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Common1", "<script>alert('2')</script>"); }
2、客户端HTML属性:客户端HTML属性提供将客户端事件与客户端脚本联系在一起的方法。
这种方法只适用于从System.Web.UI.WebControls.WebControl类导出的服务器控件,因为从这个类导出的控件会发送某些HTML元素。
WebControl类包含一个将HTML元素属性添加到由Web控件发出的HTML元素的方法,该方法称为AddAttributesToRender(),它只有一个输入参数,即HtmlTextWriter的实例。
string script = "return confirm('真的要删除吗?');"; this.Button1.Attributes.Add("onclick", script); if ((!Page.ClientScript.IsStartupScriptRegistered("PopUp") && (!Page.IsPostBack))) { string scriptBlock = "<script language='JavaScript'>alert('发送客户端脚本!');</script>"; Page.ClientScript.RegisterStartupScript(typeof(Page), "PopUp", scriptBlock); }