Search code examples
asp.netasprepeater

How to use data bound value to form unique identifier for item control?


I know that we can bind the data to each control within ItemTemplate as follow:

<ItemTemplate>
    <asp:TextBox runat="server"
        Text='<%# Eval("LabelText") %>' />
</ItemTemplate>

However, I found no way to concatenate a string prefix with the data value to form a unique string identifier. The following code shows my idea, but it doesn't work.

<ItemTemplate>
    <asp:TextBox runat="server"
         ID='TextBox_<%# Eval("LabelID") %>'
         ValidationGroup = 'VVG_<%# Eval("LabelGroup") %>'
         Text='<%# Eval("LabelText") %>' />
</ItemTemplate>

Solution

  • Try this

    ID = '<%# "Text_" + Eval("LabelID") %>'

    ValidationGroup = '<%# "VVG_" + Eval("LabelGroup") %>'
    

    EDIT:

    ID cannot be assigned in this fashion for server side controls. You can assign ID for simple form controls such as <input type="text"... />. Also take a look at Control.ClientIDMode (ASP.NET 4).