【问题标题】:Kentico 10 ASPX + Portal many-to-many relationships in repeaterKentico 10 ASPX + Portal 在中继器中的多对多关系
【发布时间】:2017-01-20 14:30:24
【问题描述】:

我主要是一名前端开发人员,只有基本的 C# 知识,但我已经成功使用 Kentico 构建了几个大型网站,并且熟悉它的许多工具。我最熟悉 Kentico 开发的 ASPX 模板模型。

我正在开发一个需要在产品和产品用途之间建立多对多关系的网站。从内容输入的角度来看,这相对容易设置,使用内置的“相关页面”属性和一对自定义页面类型。当我在单个产品页面上时,我可以输出产品属性以及相关的页面属性。但是如果我想通过转发器将所有产品输出到一个页面,我无法同时输出相关页面。似乎它需要以某种方式在中继器中使用中继器,但我不熟悉如何做到这一点。或者,也许我完全错了。想法?谢谢!

【问题讨论】:

  • 所以在一个中继器中你想同时输出当前产品和相关产品?

标签: c# kentico


【解决方案1】:

您可以使用更多方法来实现它,但是这个来自 Kentico 文档,当使用 ASCX 转换时,您可以注册其他转发器控件以显示相关页面:

<cms:CMSRepeater ID="CMSRepeater1" runat="server" ClassNames="CMS.News" Path="/%" TransformationName="cms.news.preview" RelationshipName="isrelatedto" RelationshipWithNodeGUID="11111111-1111-1111-1111-111111111111" />

【讨论】:

    【解决方案2】:

    首先,您可以在转发器中加载转发器,ASCX 转换是 ASCX,因此您可以将控件放入其中并进行如下配置:

        <script runat="server">     
        protected override void OnInit(EventArgs e)     {  
            // Adjust repeater
            rptSubTimes.Path = Eval<string>("NodeAliasPath") + "/%";
            //Reload
            rptSubTimes.ReloadData(true);     
        } 
    </script>
    
    
        <cms:CMSRepeater ID="rptSubTimes" runat="server" TopN="1" ClassNames="FS.EventDateTime" Columns="EventDTTime" OrderBy="EventDTTime DESC" TransformationName="FS.EventDateTime.HomeEndTime" />
    

    但是,这可能不是最好的方法,您可能需要考虑使用自定义查询(带有自定义查询的中继器)来获取数据,或者使用“带有自定义查询的通用查看器”webpart 来生成基于您的查询的多级层次结构转换。

    此外,您可以使用宏转换 (text/xml) 并使用宏的“ApplyTransformation”将转换应用于子项。

    【讨论】:

      【解决方案3】:

      单独使用 Kentico 中继器是可能的,但是需要大量的内容输入工作才能在各种产品之间建立正确的关系。

      幸运的是我前段时间写了一篇关于它的文章,你可以在这里查看。

      Showing Related Content through a repeater

      【讨论】:

        猜你喜欢
        • 2017-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多