aspx页面javascript的几个trick
1、一般而言,如果想给aspx页面上的web form control加上一些javascript的特性,可以用Attributes.Add来实现。例如,对TextBox txt,可以:
txt.Attributes.Add("onclick", "fcn0();");
那么,在web页面上click它的时候,就会调用fcn0这个javascript函数。
1.1、例外的情况是,对于IDE无法辨认的属性的解析。
比如对一个RadioButton rbt,IDE不能辨认onclick这个属性,那么,类似上面的语句,
rbt.Attributes.Add("onclick", "fcn1(this);");
在.net framework 1.1中,将解析成
<input type=radio id=rbt onclick="fcn1(this);">...
而在在.net framework 1.0中,将解析成
<span onclick="fcn1(this);"><input type=radio id=rbt>...</span>
注意到,fcn1中,参数this对应的对象就不同了。这是一个细微的差别。
2、而对于HTML control,需要多做一点事情。
在设计aspx页面的时候,从工具栏拖一个web form control,比如说,TextBox到页面,会发生两件事:
一、aspx页面多一句
<asp:TextBox id="TextBox1" style="..." runat="server" Width="102px" Height="25px"></asp:TextBox>
二、code behind多一句
protected System.Web.UI.WebControls.TextBox TextBox1;
如果是html control,那么,第一句中,runat="server"不会出现,而第二局不会被自动添加。
因此,如果要访问html control,需要
一、aspx页面的语句中添加runat="server"属性,成为
<INPUT style="..." type="text" size="9" id="htxt" runat="server">
二、code behind中显示的声明
protected System.Web.UI.HtmlControls.HtmlInputText htxt;
注意到第一句的id和第二句的变量名是相同的。
2.1、注意到,前面System.Web.UI.WebControls.TextBox对应的html control是System.Web.UI.HtmlControls.HtmlInputText,对应的html的tag是<INPUT type="text">,
相应的,html的tag <body>对应的html control是
public System.Web.UI.HtmlControls.HtmlGenericControl myBody;
补充:asp教程,高级应用