2014-09-23 42 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)。

只是想保持這些鏈接以供將來參考。

相關問題