【发布时间】: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; }
}
我将这些文章用作指南:
【问题讨论】:
标签: c# episerver dynamic-content