Как использовать привязанное к данным значение для формирования уникального идентификатора для элемента управления?

Я знаю, что мы можем привязать данные к каждому элементу управления в ItemTemplate следующим образом:

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

Однако я не нашел способа объединить префикс строки со значением данных, чтобы сформировать уникальный идентификатор строки. Следующий код показывает мою идею, но она не работает.

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

2 ответа

Решение

Попробуй это

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

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

РЕДАКТИРОВАТЬ:

Идентификатор не может быть назначен таким способом для элементов управления на стороне сервера. Вы можете назначить идентификатор для простых элементов управления формы, таких как <input type="text"... />, Также взгляните на Control.ClientIDMode (ASP.NET 4).

Попробуй это:

<asp:TextBox runat="server"         
    ID='<%# String.Format("TextBox_{0}",Eval("LabelID")) %>'         
    ValidationGroup = '<%# String.Format("WG_{0}",Eval("LabelGroup")) %>'         
    Text='<%# Eval("LabelText") %>' />
Другие вопросы по тегам