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);
        }


 

原文地址:https://www.cnblogs.com/yzj1212/p/2573232.html