如果您在标记中包括了一个没有映射到控件属性 (property) 的属性 (attribute),则在服务器处理过程中,ASP.NET 便会忽略该属性 (attribute),并按控件生成的标记的原样将其传递给浏览器。例如,TextBox 控件不具有名为 onkeyup 的属性。因此,如果在 TextBox 控件的标记中包括 onkeyup 属性,该属性便会被传递给浏览器。此行为允许您在标记中声明事件绑定,从而向服务器控件添加事件绑定。例如,当用户在文本框中按下任意键 时,TextBox 控件的以下标记便会使文本框显示名为 spanCounter
的 span 元素中的当前文本长度:
以声明方式向 ASP.NET 服务器控件添加客户端事件处理程序
<asp:textbox id="TextBox1" runat="server" text="Sample Text" onkeyup="spanCounter.innerText=this.value.length;" />
以编程方式向 ASP.NET 控件添加客户端事件处理程序
protected void Page_Load(object sender, EventArgs e)
{
String displayControlName = "spanCounter";
TextBox1.Attributes.Add("onkeyup", displayControlName +
".innerText=this.value.length;");
}在javascript里面我们常常使用innerHTML .其实在asp.net里面也可以使用的
<%@ 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 Page_Load(object sender, EventArgs e)
{
Message.InnerHtml = Server.HtmlEncode("Welcome! You accessed this page at: " + DateTime.Now);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HtmlContainerControl Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<span id="Message" runat=server></span>
</div>
</form>
</body>
</html>