У меня есть страница asp, которая отображает элементы управления на основе параметра Request. Упрощенный пример:
<% if (Request.QueryString["personType"] == "D") { %>
<asp:TextBox ID="TextBoxName" runat="server" Text='<%# Bind("first_name") %>' />
<asp:TextBox ID="TextBoxSurname" runat="server" Text='<%# Bind("surname") %>' />
<% } else { %>
<asp:TextBox ID="TextBoxName" runat="server" Text='<%# Bind("first_name") %>' />
<% } %>
<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server"
ControlToValidate="TextBoxName" ErrorMessage="Please enter an name." />
Однако компилятор и среда выполнения жалуются, что TextBoxName не является уникальным идентификатором. Но точно ли это, если вывод является условным и эксклюзивным?
Я мог бы переименовать их в TextBoxNameA (блок if) и TextBoxNameB (блок else), но странным является то, что валидатор все еще работает с TextBoxNameB, , даже если валидатор находится внутри блока else и код выполняется через первый блок во время выполнения
Как настроить страницу для отображения одного или другого блока, без конфликтующих идентификаторов и конфликтующих валидаторов?
Спасибо за любую помощь
Ryan