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; }
}
これらの記事をガイドとして使用しました。