最后的问题是使得您的代码便于重复使用这是通过用户控件实现的此外ASPNETx中己经带有一些功能但是在ASPNET 中得到了加强因此什么是用户控件?简而言之用户控件就是可以重复使用的Web Forms它们的名称已经经历了多次变化从scriptlets发展到pagelets一直到用户控件它们可以被看作小型脚本(miniscripts)或小型页面(minipages)或页面中的页面但是要考虑它们的关键在于它们可以根据您的需要被多次调用
如果浏览Wrox United站点则可以看到几个用户控件的示例其中一个News控件在首页上就可以看到实际上如果看看首页它是一组不同来源的组件
News控件是一个用户控件Login控件是一个ASP NET控件购物车是一个到用户控件的链接而菜单是从site master中派生的它自身是一个ASPNET控件因此整个站点首页和设计都是可以重复使用的如果单击Shopping Cart链接您将会看到第二个用户控件
在该站点的管理部分也有许多重复但您想到了一个思路!该思路就是这些控件可以在多个页面中使用或者从不同的地方调用您不需要每次都要个别地剪切并粘贴代码只要重复调用一部分代码即可挂在您嘴边的一个问题是它们如何与普通的ASPNET服务器控件相区别如前面看到的TextBox控件或Login控件?
答案是区别很小主要区别在于您必须自己提供该控件的后台代码而ASPNET服务器控件彻底解决了这个问题可以向用户控件中添加属性并将它们当作属性来设置如同使用普通的ASPNET服务器控件一样
那么为什么不全部使用ASPNET服务器控件呢?是的ASPNET 承载了许多为最常见的情况和环境而设计的控件ASPNET 中增加了大量的服务器控件例如在ASPNET 中如果想要使用Login控件则必须将用户名文本框口令文本框按钮和消息标签缝合在一个面板中因此将它创建为用户控件而在版本中Login控件当作一个服务器控件出现但是它不可能预测到用户所需要的一切因此创建自己的用户控件的灵活性就显得很有意义
如果在Internet Explorer中浏览WroxUnitednet中主页(Defaultaspx)的源代码您将看不到任何使用用户控件的迹象它全部是HTML元素和一些临时的脚本事实就是这样如果使用Flash插件或J}小程序您将会看到一些使用<object>标记(或者在旧版的浏览器上可能是<embed>标记)的迹象因此下载时间也不会太长
如果看看发送到服务器的实际页面则可以看到用户控件被包含在两个突出显示的简单代码行中(可以从wwwwroxcom上下载使用这个源代码页面)
<%@ Page Language=VB Trace=false MasterPageFile=~/sitemaster AutoEventWireup=false codefile=Defaultaspxvb Inherits=_Default %>
<%@ Register TagPrefix=wu TagName=News Src=Newsascx %>
<asp:Content ID=Content ContentPlaceHolderID=mainContent Runat=server>
<h>Welcome to the Wrox United Web site</h>
<p>Were a great football team No really we are Dont take any notice
of our past performance Were just unlucky</p>
<wu:news id=News runat=server ItemsToShow=></wu:news>
</asp:Content>
该页面开始提供一些用户控件工作原理的提示
ASPNET 入门教程完整版