IMZRH的日志

努力成为一个有用的人

导航

将asp.net usercontrol(用户控件页)转变为普通控件

Posted on 2007-12-27 09:01  张荣华  阅读(1782)  评论(4编辑  收藏  举报

步骤:
1. 建立一个 WEB 站点工程,创建一个 ascx 控件页,再创建一个 aspx 页面,将 ascx 放到 aspx 页面上,保证程序能正常运行;
2. 删除 aspx 文件, 点 build->publish web site 菜单, 在点出的窗口中: 取消选择:Allow this precompiled to be updatable,这样 ascx 页面的内容将会被编译到 DLL 中.
3. 选中 Use fixed naming and single page assemblies, 这样只会生成一个 DLL 文件.
编译之后即可生成一个 DLL.

然后新建一个 WEB 工程, 添加对这个 DLL 的引用, 在 aspx 页面顶端添加: <%@Register TagPrefix="mycontrol" Namespace="WebUserControl" Assembly="App_Web_helloworld.ascx.cdcab7d2"%>
具体的参数与创建 ASCX 工程和生成的 DLL 有关.

然后在页面中添加一行: <mycontrol:helloworld id="MyUC" runat="server"/>
此时在此 aspx 页面上即可使用先前建立的 ASCX 页面.


为了能在所有 aspx 中使用此 ASCX 控件,而不需要在每个页面的顶端进行声明,可以在 web.config 中如下声明
<system.web>
  <pages theme="Default">
   <controls>
    <add tagPrefix="myconrol" namespace="WebUserControl" assembly="App_Web_helloworld.ascx.cdcab7d2"/>
   </controls>
  </pages>