Asp.net WebForm中的Sitecore色度类型(动态占位符)

Asp.net WebForm中的Sitecore色度类型(动态占位符),asp.net,dynamic,sitecore,placeholder,sitecore7,Asp.net,Dynamic,Sitecore,Placeholder,Sitecore7,我有一个中继器来生成动态占位符。在编辑模式下,当我为其选择usercontrol时,它会给我一个错误: “未捕获在尝试获取呈现html时加载了意外元素 来自服务器。希望最后一个标记是关闭脚本 marker16860737917440451880.js:5353 Sitecore.PageModes.ChromeType.Placeholder.Sitecore.PageModes.ChromeType.extend.\u frameLoaded“ 请帮助我,tks和最好的问候 它喜欢这个问题:

我有一个中继器来生成动态占位符。在编辑模式下,当我为其选择usercontrol时,它会给我一个错误:

“未捕获在尝试获取呈现html时加载了意外元素 来自服务器。希望最后一个标记是关闭脚本 marker16860737917440451880.js:5353 Sitecore.PageModes.ChromeType.Placeholder.Sitecore.PageModes.ChromeType.extend.\u frameLoaded“

请帮助我,tks和最好的问候

它喜欢这个问题: 但我在web应用程序中编写代码

这是ascx文件

<asp:Repeater ID="rpAccordion" runat="server" OnItemDataBound="rpAccordion_OnItemDataBound">
    <ItemTemplate>
         <asp:Label runat="server" ID="lblPageHeading" Text='<%#DataBinder.Eval(Container.DataItem,"Name") %>'></asp:Label>
        <div>
        <p>
             <sc:Placeholder ClientIDMode="Static" ID="Accordion_dynamic_1" runat="server" Key="phMenuAccordion_dynamic_1" />
        </p>
           </div>
    </ItemTemplate>
</asp:Repeater>

我让这些动态占位符在占位符设置中可编辑

我想我们需要更多的信息,比如您正在使用的代码的一个最小示例。它类似于此问题:但我在web应用程序中编写代码
protected void Page_Load(object sender, EventArgs e)
    {
        Item source = GetItem();
        if (source != null && source.GetChildren().Count > 0)
        {
            var filterSource = source.GetChildren().Where(s => s.Version != null && s.Versions.Count > 0).ToList();
            if (filterSource.Count > 0)
            {
                rpAccordion.DataSource = filterSource;
                rpAccordion.DataBind();
            }
        }
    }

    protected void rpAccordion_OnItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        try
        {
            var currentItem = (Item)e.Item.DataItem;
            if (currentItem != null && e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                var placeHolderAccordion = e.Item.FindControl("Accordion_dynamic_1") as Placeholder;
                if (placeHolderAccordion != null)
                {
                    placeHolderAccordion.ID = "Accordion_dynamic_" + Convert.ToInt32(e.Item.ItemIndex + 1);
                    placeHolderAccordion.Key = "Accordion_dynamic_" + Convert.ToInt32(e.Item.ItemIndex + 1);
                }
            }
        }
        catch (Exception ex)
        {
            Log.Error(ex.Message, ex, this);
        }
    }