代码循环中的CMSEditableRegion

本文关键字:CMSEditableRegion 循环 代码 | 更新日期: 2023-09-27 17:49:33

我试图添加一个cmseditable区域到我的Kentico web部件,存在于选项卡内容内部,现在选项卡的数量是灵活的,所以我想动态地生成这个。我已经尝试了下面的方法(stringbuilder),但它只是将其呈现为html,而不是传递给文字时的控件。

for (int i = 1; i <= TabCount; i++)
        {
            sb.AppendLine("<li class='"htab-list__item--fininfo active'">");
            sb.AppendLine("<a href='"#financial-result'" class='"htab-list__link tab-link'">");
            sb.AppendLine("<cms:CMSEditableRegion runat='"server'" id='"ttl" + i.ToString() + "'" RegionType='"Textbox'" RegionTitle='"" + i.ToString() + " Title'" />");
            sb.AppendLine("</li>");

是否有办法使CMSEditableRegion能够在代码中动态设置,以便当循环构建页面代码时,它将在正确的位置作为控件,而不仅仅是html。

完整的代码有更多的html和每个循环3个可编辑的区域,但它甚至不能只用一个。

代码循环中的CMSEditableRegion

动态添加控件的操作如下:

// Let's assume that 'plc' is a placeholder. But it can be any control.
plc.Controls.Add(new LiteralControl("<li class='"htab-list__item--fininfo active'">"));
plc.Controls.Add(new LiteralControl("<a href='"#financial-result'" class='"htab-list__link tab-link'">"));
plc.Controls.Add(new CMSEditableRegion { ID = "someid", RegionType = CMSEditableRegionTypeEnum.TextBox, RegionTitle = "sometitle" });
plc.Controls.Add(new LiteralControl("</li>"));

也可以查看MSDN

我建议您创建一个特别的PageType(在Kentico 7中称为DocumentType),您可以在其中放置所需的HTML文本。然后,您可以使用Repeater web部件或ASP来显示它。. NET中继器,如果你像我一样,喜欢在代码中工作。

相关文章:
  • 没有找到相关文章