正文

ContentPlaceHolder与Content控件2012-06-16 11:23:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/edwardguo/53523.html

分享到:

定义: ContentPlaceHolder 控件:在 ASP.NET 母版页中定义内容区域。 Content控件:保存文本、标记和服务器控件以呈现给母版页中的 ContentPlaceHolder  控件。 两者关系: ContentPlaceHolder 控件在母版页中定义相对内容区域,并呈现在内容页中找到的相关的 Content  控件的所有文本、标记和服务器控件。 Content 控件使用其ContentPlaceHolderID  属性与 ContentPlaceHolder 关联。将 ContentPlaceHolderID 属性设置为母版页中相关的 ContentPlaceHolder 控件的ID属性的值。 通俗的来讲,ContentPlaceHolder 控件是个容器控件,用来存放内容,但是如果它放在母板页中,那么它的内容页就需要使用Content控件来指定ContentPlaceHolder控件(好像一个指针一样,通过 ContentPlaceHolderID 属性来指定)来放置内容。 注意: ContentPlaceHolder控件如果放在母版页中,那么它的内容页是通过Content控件来链接,是可编辑的。 但是Content控件如果放在母板页中,那么它的内容页中没有东西来对其进行链接,是不可编辑的。 举例: 母版页一的代码: [html] view plaincopyprint? <span style="font-size:18px;"><span style="font-size:13px;"><head runat="server">        <title>演示</title>        <asp:ContentPlaceHolder id="head" runat="server">        </asp:ContentPlaceHolder>    </head>    <body>        <form id="form1" runat="server">母版页演示        <div>            <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">                        </asp:ContentPlaceHolder>                </div>        </form>    </body></span>    </span>  <span style="font-size:18px;"><span style="font-size:13px;"><head runat="server"> <title>演示</title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server">母版页演示 <div> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> </form> </body></span> </span> 母版页一的内容页的代码: [html] view plaincopyprint? <span style="font-size:18px;"><span style="font-size:13px;"><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">    </asp:Content>    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">    </asp:Content></span>    </span>  <span style="font-size:18px;"><span style="font-size:13px;"><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content></span> </span> 母版页二的代码(二级母版页,继承自母版页一): [html] view plaincopyprint? <span style="font-size:18px;"><span style="font-size:13px;"><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">    </asp:Content>    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">    </asp:Content></span>    </span>  <span style="font-size:18px;"><span style="font-size:13px;"><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content></span> </span> 母版页二的内容页的代码:没有代码,是空白。 问题:这样的话二级母版页的内容页就不能进行编辑,如何解决呢? 解决:我们只需在二级母版页中添加ContentPlaceHolder控件即可。 举例:上面的母版页二,我们更改后: [html] view plaincopyprint? <span style="font-size:18px;"><span style="font-size:13px;"><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">        </asp:ContentPlaceHolder>    </asp:Content></span>    </span><span style="font-size:13px;"><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">        <asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">        </asp:ContentPlaceHolder>    </asp:Content>    </span>  <span style="font-size:18px;"><span style="font-size:13px;"><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </asp:Content></span> </span><span style="font-size:13px;"><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server"> </asp:ContentPlaceHolder> </asp:Content> </span> 母版页二的内容页变为: [html] view plaincopyprint? <span style="font-size:13px;"><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">    </asp:Content>    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">    </asp:Content>    </span> 

阅读(3392) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册