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

时间:2017-02-17 16:05:48

标签: asp.net kentico

有没有办法可以通过转发器的模板访问webpart的属性(反之亦然)?

<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来做,但宁愿选择&#34;更纯粹的&#34;这样做的方式,如果它存在。

提前致谢

3 个答案:

答案 0 :(得分:2)

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

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

现在,如果您想从实际的webpart本身设置一个值,您需要确保该属性是公共属性,然后您可以使用以下内容:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果这是在门户网站方法中,您可以从页面模板表中获取XML并从中获取值。由于它纯粹来自代码,并且它是转发器,因此通常需要将数据存储在转发器本身之外的某个位置(在您重复的项目中,或在当前页面形式的数据中)。

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

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