Kentico 10 ASPX + Portal转发器中的多对多关系

时间:2017-01-20 14:30:24

标签: c# kentico

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

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

首先,您可以在转发器中加载转发器,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”将转换应用于子项目。

答案 2 :(得分:0)

通过单独使用Kentico中继器是可能的,但是在各种产品之间建立正确的关系会有内容输入。

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

Showing Related Content through a repeater