Мне нужно иметь возможность применять несколько групп проверки к некоторым элементам управления на моей странице, потому что для каждого из трех «режимов» отправки существует свой набор обязательных полей.
У меня есть три кнопки отправки, и у каждой есть своя группа проверки (отклонить, утвердить и сохранить). «Отклонить» на самом деле не содержит обязательных полей в настоящее время, но может появиться в будущем. «Сохранить» требует только «имя» и «фамилию», в то время как «одобрить» требует «имя», «фамилию», а также «имя группы».
Я попытался просто поместить несколько групп проверки в значение атрибута (как в приведенном ниже коде), но проверка вообще не сработала.
Я также попытался вообще не указывать группу, чтобы просто всегда срабатывать проверка, но опять же, она вообще не срабатывала.
<div>
<label for='<%= txt_FirstName.ClientID %>'>First Name</label>
<asp:TextBox ID="txt_FirstName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfv_FirstName" runat="server" text="Required"
ControlToValidate="txt_FirstName" ValidationGroup="approve save">
</asp:RequiredFieldValidator>
</div>
<div>
<label for='<%= txt_LastName.ClientID %>'>Last Name</label>
<asp:TextBox ID="txt_LastName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfv_LastName" runat="server" text="Required"
ControlToValidate="txt_LastName" ValidationGroup="approve save">
</asp:RequiredFieldValidator>
</div>
<div>
<label for='<%= ddl_GroupName.ClientID %>'>Group Name</label>
<asp:DropDownList ID="ddl_GroupName" runat="server"></asp:DropDownList>
<asp:RequiredFieldValidator ID="rfv_GroupName" runat="server" text="Required"
ControlToValidate="ddl_GroupName" ValidationGroup="approve">
</asp:RequiredFieldValidator>
</div>
<div>
<asp:Button ID="btn_Reject" runat="server" Text="Reject"
ValidationGroup="reject" OnClick="btn_Reject_Click" />
<asp:Button ID="btn_Approve" runat="server" Text="Approve"
ValidationGroup="approve" OnClick="btn_Approve_Click" />
<asp:Button ID="btn_Save" runat="server" Text="Save"
ValidationGroup="save" OnClick="btn_Save_Click" />
</div>
Я уверен, что смогу добиться желаемого эффекта с помощью некоторого дополнительного кода или дублированных элементов управления валидатором для каждой группы валидации, но я надеялся, что у инфраструктуры веб-форм будет более простой встроенный способ сделать это.
ОБНОВЛЕНИЕ (02.01.2018):
Вопрос «Можно ли назначить несколько групп проверки для одного элемента управления проверкой?» - это мой частный случай. У него один элемент управления в нескольких группах, тогда как у меня есть несколько элементов управления с несколькими перекрывающимися группами. Кроме того, в ответе предлагается наличие элемента управления проверкой для каждой комбинации ввода / группы. Это ужасное решение, потому что, среди прочего, оно нарушает принцип программирования DRY (не повторяйтесь) и затрудняет обслуживание / усовершенствования.
Вышеупомянутое также связывает вопрос «Как выполнить проверку по нескольким группам проверки?». Этот вопрос - совершенно другая проблема (группы проверки в группах проверки), и его ответ предлагает настраиваемый javascript, который необходимо написать для каждой кнопки отправки на каждой странице, требующей нескольких групп проверки.
Я ищу общее решение, которое я могу написать / реализовать один раз и применить ко всему веб-приложению, и поэтому я не считаю свой вопрос дубликатом вышеупомянутых вопросов.
ОБНОВЛЕНИЕ (2018-01-03):
Между другими вопросами / статьями, с которыми я столкнулся при исследовании моей проблемы, а также благодаря любезной помощи a.bajorinas и Sunil, я установил, что невозможно иметь несколько групп проверки в контрольном элементе управления, и для достижения желаемого эффекта потребуется специальный код. Я обновил вопрос соответствующим образом, чтобы помочь всем, кто хочет достичь этого в будущем.
Я буду тестировать решение, которое включает элементы из ответов a.bajorinas и Сунила, и, надеюсь, смогу предоставить обновление позже.
ValidationGroup="group1, group2"
. Кроме того, несколько групп проверки должны быть указаны на уровне управления отправкой, как для кнопки, но не для валидатора, который не отправляет страницу. - person Sunil   schedule 02.01.2019