ASP.NET - множественная проверка Valum - PullRequest
0 голосов
/ 20 мая 2009

Сценарий : Я пытаюсь вставить команду (состоящую из нескольких человек) на одной странице. У меня есть пользовательский веб-элемент управления для вставки каждого пользователя, и когда в команде несколько человек, одновременно отображаются несколько веб-элементов управления.

У каждого пользователя есть ValidationSummary и несколько валидаторов (все сгруппированы в одну и ту же группу валидации, например, пользовательский веб-элемент управления person1 имеет группу валидации в сводке по валидации и для каждого валидатора установлено значение "valGroup_Person1").

Проблема заключается в том, что при проверке все ошибки группируются и отображаются во всех веб-элементах управления, поэтому каждый элемент управления отображает очень длинный список ошибок. Ожидаемые списки отдельных ошибок.

Есть ли способ заставить ValidationSummary работать таким образом?

Ответы [ 2 ]

6 голосов
/ 20 мая 2009

Если вы используете asp.net 2.0, вы должны использовать группу проверки, это будет работать.

См. Пример ниже, он будет работать

</p>



        
        

    

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" 
    ValidationGroup="1">1</asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
    ControlToValidate="TextBox2" ErrorMessage="RequiredFieldValidator2" 
    ValidationGroup="2">2</asp:RequiredFieldValidator>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" 
    ValidationGroup="1" />
<asp:ValidationSummary ID="ValidationSummary2" runat="server" 
    ValidationGroup="2" />
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="1" />
<asp:Button ID="Button2" runat="server" Text="Button" ValidationGroup="2" />

0 голосов
/ 06 июля 2009

Вы должны устранить неоднозначность между группами проверки, дав им отдельные имена на каждом из элементов управления. Например, в пользовательском элементе управления страницы:

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    Dim uniqueGroupName = Guid.NewGuid.ToString
    valSummary.ValidationGroup = uniqueGroupName
    txtFirstName.ValidationGroup = uniqueGroupName
    txtLastName.ValidationGroup = uniqueGroupName
    btnFind.ValidationGroup = uniqueGroupName
End Sub

(для каждого элемента управления в группе программно укажите группу проверки)

Если вы выполняете проверку на стороне сервера, вам следует вызвать проверку только для группы, например,

Page.Validate(valSummary.ValidationGroup)
If Not Page.IsValid then Exit Sub
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...