对这个概念很多人有误解。以为凡是 WebControl 都必须放在 <form runat="server"></form> 里面。比如:
http://community.csdn.net/Expert/topic/3848/3848189.xml?temp=.1163141
先让我们来做几个试验。
(为了说明方便,以下仅列出 aspx 文件中 body 里的内容。)
1,
<
form
id
="Form1"
method
="post"
runat
="server"
>
</
form
>
<
asp:TextBox
ID
="txtHello"
Runat
="server"
Text
="OK"
></
asp:TextBox
>
2,
<
form
id
="Form1"
method
="post"
runat
="server"
>
</
form
>
<
asp:Label
ID
="lblHello"
Runat
="server"
Text
="Hello"
></
asp:Label
>
3,
<
form
id
="Form1"
method
="post"
runat
="server"
>
</
form
>
<
asp:Button
ID
="btnHello"
Runat
="server"
Text
="Hello"
></
asp:Button
>
结果发现了什么?
Label 可以正常使用。而 TextBox 和 Button 都会出现抛出一个异常。
因为 Label, Button, TextBox 都继承自 System.Web.UI.WebControls.WebControl 类。下面我们用 Reflector 来分析一下。
( 如果不了解 Reflector 的可用 google 搜索).
WebControl 类的部分代码:
//
(Attributes 省略)
public
clas
先让我们来做几个试验。
(为了说明方便,以下仅列出 aspx 文件中 body 里的内容。)
1,
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2,
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
3,
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
结果发现了什么?
Label 可以正常使用。而 TextBox 和 Button 都会出现抛出一个异常。
因为 Label, Button, TextBox 都继承自 System.Web.UI.WebControls.WebControl 类。下面我们用 Reflector 来分析一下。
( 如果不了解 Reflector 的可用 google 搜索).
WebControl 类的部分代码:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)