2014-09-23 46 views
0

将数据源绑定到Repeater控件时,是否可以将数据绑定到ItemTemplate中的服务器端控件的ID属性?像这样:中继器:项目控制中的数据绑定服务器端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属性设置为“tt [name-value]”。我试过几个变种,但他们是无效的:

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

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

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

回答

1

这是不可能的。服务器控件的ID在创建时或设计时设置。设置完成后,您无法在数据绑定过程中将其重置。

但是,如果您试图在JQueryJavaScript中使用此ID值,则可以使用以下hack。

自定义属性添加到您的控件(给它任何你喜欢的名字,在这种情况下,我将使用身份识别码

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

不,你可以通过这个myId属性发现这个元素

希望这有助于。

+0

谢谢。我希望嵌套控件是在数据绑定时创建的,因此它们的ID可以设置为使用静态字符串作为ID时(它的工作原理)......但听起来并不那么简单。 – mdelvecchio 2014-09-24 14:30:43

0

试试这个分配ID

ID = ' “TT” + <%#的eval( “名称”)%>'

+1

你尝试过吗?这是无效的。 – mdelvecchio 2014-09-23 22:23:15

+0

对不起,但在这一刻不能尝试。试试这个id ='<%#Eval(“name”,“tt {0}”)%>' – 2014-09-23 22:30:57

+0

我不认为这会起作用,因为它与我失败的尝试相同的语法。即时通讯不是真的在寻找建议,即时通讯询问是否有人知道是否有可能。谢谢 – mdelvecchio 2014-09-23 22:34:26

0

另请参阅this回答我的其他问题之一(使用纯JavaScript的this对象而不是使用自定义属性获取clientID)。

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

相关问题