Repeater:项目控件中的数据绑定服务器端ID?

时间:2014-09-23 22:05:57

标签: asp.net repeater

将数据源绑定到Repeater控件时,是否可以将数据绑定到ItemTemplate内的服务器端控件的ID属性?像这样:

<asp:Repeater ID="rptToolTips" runat="server">
    <ItemTemplate>

        <telerik:RadToolTip ID="tt<%# Eval("Name") %>" ClientIDMode="Static" runat="server">
            <div class="tip">
                <div class="segName">Segment #<%# Eval("Name") %></div>
                <div>Flow:<%# Eval("Flow", "{0:N}") %></div>
            </div>
        </telerik:RadToolTip>

    </ItemTemplate>     
</asp:Repeater>

...这里我试图将RadToolTip的ID属性设置为&#34; tt [name-value]&#34;。我尝试了一些变种,但它们无效:

ID="tt<%# Eval("Name") %>"

ID='tt<%# Eval("Name") %>'

ID="tt<%# Eval('Name') %>"

3 个答案:

答案 0 :(得分:1)

这是不可能的。服务器控件的ID在创建时或在设计时设置。一旦设置,您就无法在数据绑定期间重置它。

但是,如果您尝试在JQueryJavaScript中使用此ID值,则可以使用以下黑客攻击。

为您的控件添加自定义属性(为其指定任意名称,在这种情况下,我将使用 myId

myId='<%# Eval("Name") %>'

否,您可以通过此myId属性

找到此元素

希望这有帮助。

答案 1 :(得分:0)

尝试此操作以分配ID

ID ='“tt”+&lt;%#Eval(“Name”)%&gt;'

答案 2 :(得分:0)

另请参阅this我回答其中一个问题的另一种方法(使用纯JavaScript&#39; this对象而不是使用自定义属性来获取clientID)这个。

想到保持这些链接以供将来参考。