【问题标题】:Rendering user controls in EPIserver dynamic content在 EPIserver 动态内容中呈现用户控件
【发布时间】:2012-02-04 05:34:26
【问题描述】:

我正在尝试制作 EPIserver 动态内容控件,我想要的内容是我已经制作的用户控件(滑块),在我将动态内容控件插入到页面/区域之前,一切似乎都正常工作想用。

当我现在转到我创建的页面时,它会显示“静态”内容:

<h3>Dynamic slider</h3>
<TextBox runat="server" ID="txtTest" />
<cd:TopSlider runat="server" ID="MySlider"/>

在这 3 项中显示标题和文本框,但不显示“cd:TopSlider”, 在 OnPageLoad 中,我将 TextBox 中的文本设置为“FooBar”,但这也没有显示,它接缝它永远不会进入服务器端,我试图放置断点但未触发。 . .

这是 DynamicContent 文件的代码:

加载DynamicContentTest.ascx.cs的用户控件:

public partial class DynamicContentTest : System.Web.UI.UserControl
    {
        public IEnumerable<SliderPage> DataSource { get; set; }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            txtTest.Text = "FooBar";

            MySlider.DataSource = DataSource;
            MySlider.DataBind();

        }
    }

DynamicContentTest.ascx:

<%@ Register TagPrefix="cd" TagName="TopSlider" Src="~/UserControls/TopSlider.ascx" %>
<!-- Slider -->
<h3>Dynamic slider</h3>
<asp:TextBox runat="server" ID="txtTest" />
<cd:TopSlider runat="server" ID="mySlider"/>
<!-- END Slider -->

动态内容控制:

[DynamicContentPlugIn(
        DisplayName = "Dynamic slider",
        Description = "Displays a slider",
        ViewUrl = "~/UserControls/DynamicContent/Custom/DynamicContentTest.ascx")]
    public class DynamicSliderControl : UserControlBase
    {
        public PageReference SlidesRoot { get; set; }

        public System.Web.UI.Control GetControl(EPiServer.PageBase hostPage)
        {
            var userControl = (UserControls.DynamicContent.Custom.DynamicContentTest)hostPage.LoadControl("~/UserControls/DynamicContent/Custom/DynamicContentTest.ascx");
            userControl.DataSource = SlidesRoot != null ?
                SlidesRoot.GetChildrenOfType<SliderPage>() : null;
            return userControl;
        }

        public bool RendersWithControl
        {
            get { return true; }
        }

        public string State { get; set; }
    }

我将这些文章用作指南:

Create EPiServer dynamic content with advanced settings

Creating simple Dynamic Content in EPiServer CMS 6 R2

【问题讨论】:

    标签: c# episerver dynamic-content


    【解决方案1】:

    您是否使用 EPiServer:Property 控件来呈现动态内容?

    如果你不使用它,EPiServer 就没有机会拦截动态内容并适当地渲染出来。

    【讨论】:

    • 不,我不使用那个,那是我应该使用的东西吗?我对 EpiServer 有点陌生,所以以前在任何情况下都没有使用过。 . .
    • 我终于开始测试它并且它有效,所以我会接受这个作为答案,但我们使用页面类型生成器,所以我们仍然想解决 EPiServer:property。但是谢谢你回答它帮助我缩小了问题的范围。 PS:下次你回答某人时,你应该更具体,因为那一行给了我很多东西。
    【解决方案2】:

    我们使用页面类型生成器,所以我们仍然想解决 EPiServer:property

    在这种情况下,this 链接可能会对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多