经过编译的代码
在这里我们讲述的服务器控件,但是,最重要的是要知道真个页面,包括其中所有的HTML、文件和其他内容,都被编译成了一个类,执行这个类就可以为用户创建输出。当这个类执行时,所有静态的和基于客户机的内容(文本、HTML和客户端脚本等等)都以响应的方式发送给客户机。我们在服务器上与它并没有发生交互。但是,所有具有runat=”sever”属性标记的控件和元素都是在这个页面类中创建的对象。这意味着我们编写的代码可以利用这些对象。或者,更简单一些,如果将元素或控件加上属性标记runat=”sever”,那么就可以访问它的属性、调用它的方法并对它在服务器上产生的事件做出响应。其原因是ASP.NET利用<form>元素来创建返回体系结构。在返回体系结构中,当用户与页面上的控件进行交互的时候,页面连同它的内容被返回给服务器上的同一个ASP.NET文件。
当用户单击一个页面时,该控件在页面上的值被返回到服务器中并产生了一个单击事件(在服务器上)。我们利用事件处理程序对这个事件做出响应。还有一点很明显,新页面设计方法中的核心内容,就是每个服务器控件都被作为一个在页面中可以全局利用的对象编译到页面类中。在一个事件处理程序中,我们可以对所有的控件进行访问。因此,我们就可以像传统的应用程序中那样对其他文本框、按钮和列表控件等中的值进行访问,然后采取适当的动作并创建适当的输出。