Sharepoint主页面asp:转发器标签

时间:2014-03-21 18:19:39

标签: sharepoint sharepoint-2013

我目前正致力于为sharepoint实例生成母版页。但是,在尝试转换ASP转发器时会出现一些问题

以下内容适用于生成重复文本:

    <!--MS:<asp:Repeater ID="TopMenu" runat="server" DataSourceID="selectedSiteMap">-->
    <!--MS:<HeaderTemplate> -->

    <!--ME:</HeaderTemplate> -->
    <!--MS:<ItemTemplate> -->
        <li><a href="" class="link">test</a></li>
    <!--ME:</ItemTemplate> -->
    <!--MS:<FooterTemplate> -->

    <!--ME:</FooterTemplate> -->
<!--ME:</asp:Repeater> -->
<!--MS:<asp:SiteMapDataSource SiteMapProvider="CurrentNavigation" ShowStartingNode="false"
    StartFromCurrentNode="false" StartingNodeOffset="0" StartingNodeUrl="sid:1002"
    EnableViewState="true" ID="selectedSiteMap" runat="server" /> -->

但以下情况不起作用:

    <!--MS:<asp:Repeater ID="TopMenu" runat="server" DataSourceID="selectedSiteMap">-->
    <!--MS:<HeaderTemplate> -->
        <ul id="main_menu_ul" class="">
    <!--ME:</HeaderTemplate> -->
    <!--MS:<ItemTemplate> -->
        <li><a href=<!--MS:"<%# Eval("Url")%>"--> class="link">
            <!--MS:<%# Eval("Title")%>--></a></li>
    <!--ME:</ItemTemplate> -->
    <!--MS:<FooterTemplate> -->
        </ul>
    <!--ME:</FooterTemplate> -->
<!--ME:</asp:Repeater> -->
<!--MS:<asp:SiteMapDataSource SiteMapProvider="CurrentNavigation" ShowStartingNode="false"
    StartFromCurrentNode="false" StartingNodeOffset="0" StartingNodeUrl="sid:1002"
    EnableViewState="true" ID="selectedSiteMap" runat="server" /> -->

到目前为止,我已确定问题是2折: 1.转换器不喜欢开口ul和闭合ul完全匹配的事实 2.转换器根本不喜欢eval标签。

任何人都可以帮助让这个中继器正常工作会非常有帮助。谢谢

2 个答案:

答案 0 :(得分:2)

另一种可能性是您手动上传母版页(而不是使用功能部署它)。 &lt;%#Eval(“Url”)%&gt;标签被视为服务器端代码,事实证明,存在一个安全限制,即自定义页面中不允许使用服务器端代码 - 换句话说,就是无法托管的代码。

因此,如果您使用SharePoint设计器自定义母版页,则新副本存在于内容数据库中,这被视为自定义。

我最近打了这个 - 使用一个功能部署了一个aspx母版页(里面有一个转发器控件),下载一个副本,重新上传它(没有任何变化)和爆炸 - 错误。此文件中不允许使用代码块。

当你把它放在一个html母版页中时,你可能只是掩盖了错误的真正原因。您可以尝试在web.config中添加一个条目(例如,参见this blog),以指定您的母版页可以包含代码块。

答案 1 :(得分:0)

可能因为你已经打开了 MS:在你Eval之前(&#34;&#34;)但没有关闭ME:在eval标签之后。