gpt4 book ai didi

header - DotNetNuke - 页眉、内容和页脚

转载 作者:行者123 更新时间:2023-12-04 13:42:21 33 4
gpt4 key购买 nike

有什么办法,就像 WordPress 一样,创建 header.php、theme-file.php 和 footer.php,然后使用钩子(Hook)将它们组合起来?对我来说仍然复​​制皮肤文件似乎很疯狂,尤其是当您需要对页眉或页脚的内容进行细微更改时。

非常感谢

最佳答案

皮肤只是一个 ascx 控件,因此您可以像封装任何其他 WebForms View 一样封装它的一部分。您可以将页眉/页脚内容放入他们自己的 ascx 文件中,然后将它们包含在皮肤中。唯一会遇到问题的地方是我认为 DNN 不支持在单独的控件中使用 Pane 。其他一切都应该是公平的游戏。

您需要将它们放在单独的目录中,以免 DNN 将它们视为其他皮肤。

-MySkin
--Controls
---Header.ascx
---Footer.ascx
--Home.ascx
--Home.doctype.xml
--Interior.ascx
--Interior.doctype.xml

然后,在皮肤中,通过在标题中注册控件来包含控件:
<%@ Register TagPrefix="myskin" TagName="Header" Src="Controls/Header.ascx" %>
<%@ Register TagPrefix="myskin" TagName="Footer" Src="Controls/Footer.ascx" %>

并通过控制语法包含它:
<myskin:Header runat="server" />
....
<myskin:Footer runat="server" />

控件不会自动从皮肤访问任何上下文,所以如果你需要使用 SkinPathPortalId或类似的东西,您需要手动将其传递给控件。在控件中,定义一个属性来接收值(使用 <script runat="server"> 部分编写代码 [为此将控件中的 Language 属性设置为 C#]):
<script runat="server">
public string SkinPath { get; set; }
</script>

然后在皮肤中传递值:
<myskin:Header runat="server" SkinPath="<%# SkinPath %>" />

关于header - DotNetNuke - 页眉、内容和页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512989/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com