创建共享的用户控件和母版页(子项目共享)

创建一个共享的母版页并在子项目中使用

 

在这个例子中,我将展示如何在根项目设置一个母版页,然后在子项目中使用如同在同一个解决方案项目中使用一样。

1)第一步是要在根项目中创建母版页。为此,请在根项目的节点,在这个解决方案explorere右击并选择"添加新项" 。在对话框中选择母版页的项目,并为它一个名字(如 - RootProject.master)。

2)一旦母版页在根项目中创建,"设计视图"中编辑,并添加了一些默认内容如下所示。

3)现在,我们有一个母版页在根项目中创建,我们需要在子项目中创建一个内容页将利用根项目中的母版页。右击项目的节点在溶液中explorere并选择添加新项。对话框中选择Web窗体项目,并提供它的名称(如- ContentPage.aspx)。

4)下一步是改变子项目中内容页的Form形式。要做到这一点,首先要从Web窗体中移除所有内容,仅留下Page指令行,如下所示。

5)接下来添加一个MasterPageFile属性和一个或更多的asp.net内容控件来使用根项目的母版页,如下图所示。在MasterPageFile属性,使用当前文件的相对路径指向根项目中的母版页。在母版页中"contentplaceholder" 区添加尽可能多的内容,你想覆盖。

注意:Visual Studio 2005在MasterPageFileContentPlaceHolderID属性将显示错误。两者都是在Visual Studio中已知的错误,可以忽略,因为他们不是网页时运行错误。

6)如果将子项目内容页面切换到设计视图,您会发现,只有从内容呈现的内容而母版页本身不会呈现。这也是一个Visual Studio 2005的已知的限制。虽然母版页的部分内容是在设计视图中显示时,使用从根项目母版页,内容页也可以完全修改任何其他网页一样,因此,这种限制不应过多影响大多数用户。

7)要测试母版页在实际工作的内容页,在子项目中的内容页上右击。并在浏览器中选择查看 。这将启动Web 浏览器并显示合并了母版页的内容。

 

创建一个共享的用户控制并在子项目中使用

 

上一节描述了如何创建根项目共享母版页,然后如何子项目中使用共享母版页。本节介绍如何使用类似的技术,在根项目中创建一个共享谔谔用户控制,并在子项目中使用项。

1)第一步是在根项目中创建共享用户控制。为此,请在根项目的节点,在这个解决方案explorere右击并选择添加新项 。在对话框中选择Web用户控件项目,并命名(如 - RootUserControl.ascx)。

2)一旦用户控制在根项目中创建,在设计视图中编辑,并添加了一些默认内容如下所示。

3)现在,共享用户控件在根项目创建后,下一步是在子项目中使用它。当从另一个项目使用用户控件时,Visual Studio 2005不提供拖/放支持(即-你不能拖动ASCX文件到设计图面),所以必须手动在Register指令类型,添加一个用户控件的实例。为此,如下图所示,修改子项目中的页面(default.aspx本例中),Register的Src属性使用相对路径指在根项目共享用户控件。

注意:在这步中您可能会在任务列表中看到一些编译错误。这些都可忽视,下一步。

4)要在子项目中使用共享用户控件,需要一个额外的步骤。给子项目添加一个根项目的引用。要做到这分上右击项目在解决方案资源管理器节点选择添加引用。Refernece在对话框中添加项目选项卡,然后选择根项目引用(在这个例子中MyLargeWeb)。

5)只要子项目的输出文件夹设置为根项目的 \bin目录 ,那么就增加一根项目引用就足够了,这一步可以跳过。但是,如果分项目的输出目录设置在其他地方,就应调出分项目的引用列表,设置根项目的引用的Copy Local property  False,如下所示。

7)添加了根项目的引用后,将子项目的内容也切换到“设计”视图下将呈现共享用户控件内容。在子项目中选中一个使用了根项目中的用户控件的页面并在Web 浏览器里浏览,结果如下:

注意:您仍然会继续得到某些属性标记验证错误,当你打开或者编辑使用了根项目的共享用户控件的页面的时候。类似于上一节的母版页的情况,这些验证错误在Visual Studio 2005并不是编译错误,他们是可以忽略的错误。


源文:http://blogs.msdn.com/webdevtools/archive/2006/08/15/701642.aspx 

posted @ 2010-03-04 14:47  Jim哥  阅读(896)  评论(0)    收藏  举报