#asp.net #asprepeater
#asp.net #asprepeater
Вопрос:
Я знаю, что мы можем привязать данные к каждому элементу управления в 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>
Комментарии:
1. Не могли бы вы, пожалуйста, рассказать нам, почему это не работает. Какое поведение создает ваш код?
2. например, результатом ValidationGroup будет: «VVG_<%# Eval(«LabelGroup») %>»
Ответ №1:
Попробуйте это
ID = ‘<%# «Text_» Eval(«labelId») %>’
ValidationGroup = '<%# "VVG_" Eval("LabelGroup") %>'
Редактировать:
Идентификатор не может быть назначен таким образом для элементов управления на стороне сервера. Вы можете назначить идентификатор для простых элементов управления формой, таких как <input type="text"... />
. Также взгляните на элемент управления.ClientIDMode (ASP.NET 4).
Комментарии:
1. Я не думаю, что это сработает, когда я попытался запустить пример с ним, я получил сообщение об ошибке с надписью Сообщение об ошибке синтаксического анализатора: Свойство ID элемента управления может быть установлено только с использованием атрибута ID в теге и простого значения. Пример:
<asp:Button runat="server" id="Button1" />
2. @R0MANARMY вы пробовали это в ItemTemplate повторителя?
3. Внутри части ItemTemplate повторителя я могу опубликовать свой код, если вы хотите.
4. @Bala R: Я думаю, более конкретно, я не думаю (согласно ошибке), что это сработает для поля ID, но должно подойти для других.
Ответ №2:
Попробуйте это:
<asp:TextBox runat="server"
ID='<%# String.Format("TextBox_{0}",Eval("LabelID")) %>'
ValidationGroup = '<%# String.Format("WG_{0}",Eval("LabelGroup")) %>'
Text='<%# Eval("LabelText") %>' />