从 CMSRepeater 模板中访问 Web 部件属性

Access web part properties from within CMSRepeater Template

有什么方法可以使用转发器的模板访问 Web 部件的属性(反之亦然)?

<div ID="RepeaterWrapper" runat="server">
    <cms:CMSRepeater ID="repItems" runat="server">
        <ItemTemplate>
            <div class="col-sm-4">
                <!-- I want to access this div in my code behind or else have it access a property from the code behind-->
            </div>
        </ItemTemplate>
    </cms:CMSRepeater>
</div>

我想设置内部 div 的背景颜色,但我不能使用 类,因为 属性 是以十六进制颜色给出的,所以它意味着一些千 类!

最坏的情况我可以用一些 js 来做,但如果它存在,我宁愿用 "purer" 的方式来做。

提前致谢

是否所有项目都具有相同的颜色?如果是每个项目,则修改您要拉取的项目以包含该值。

如果这是在门户方法中,您可以从页面模板 table 中获取 XML 并从中获取值。由于它纯粹来自代码,而且它是一个中继器,通常你需要将数据存储在中继器本身之外的某个地方(在你重复的项目中,或者在当前页面表单数据中)。

如果您可以从宏的任何位置访问它,那么您可以使用 CMS.MacroEngine.MacroContext.Current.ResolveMacro() 来解析它并获取值。

您能否提供更多有关 div BG 颜色存储位置的信息?为什么它必须在中继器本身中?

假设您的数据源在返回的数据中具有该背景色,一旦您将数据源绑定到转发器,您就可以在项目模板中访问它。只需使用这样的东西:

<div class="col-sm-4 <%# Eval("BgColorColumnName") %>">

现在,如果您想从实际的 Web 部件本身设置一个值,您需要确保 属性 是 public 属性 然后您可以使用类似的东西:

<div class="col-sm-4 <%# YourPublicPropertyName %>">