Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Почему не работает ValidationSummary


Автор: draiv 28.6.2007, 12:29
есть такой код:
Код

        <tr>
            <td align="left" colspan="4">
                <asp:RegularExpressionValidator ID="regEVlUserName" runat="server" ControlToValidate="tbEmail"
                    ErrorMessage="Enter valid E-mail address" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator></td>
        </tr>
        <tr>
            <td align="left" colspan="4">
                <asp:RegularExpressionValidator ID="regEVlPassword" runat="server" ControlToValidate="tbPassword"
                    ErrorMessage="Password must have 6 or more characters" ValidationExpression="(.{6})(.*)"
                    Width="254px"></asp:RegularExpressionValidator></td>
        </tr>
        <tr>
            <td align="left" colspan="4">
          <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="tbPassword"
            ControlToValidate="tbConfirmPassword" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match."></asp:CompareValidator></td>
        </tr>
        <tr>
            <td align="left" colspan="4">
                <asp:ValidationSummary ID="vlSummary1" runat="server" showSummary="true" HeaderText="Errors" DisplayMode="List" />
            </td>
        </tr>


Все сообщения об ошибках выводит не ValidationSummary, а каждый из трех валидаторов самостоятельно.
Почему?

Автор: tol05 28.6.2007, 12:34
Потому что в каждом из трех валидаторов нужно установить Display="None"

Автор: Mymik 29.6.2007, 10:12
tol05, не только, еще нужно в ValidationSummary поставить ShowMessageBox="true"
А иначе оно не будет отображаться, потому как по умолчанию оно в false.

И Display="None" можно тоже не ставить. Как правило в таких ситуациях в свойство Text у RegularExpressionValidator ставят "*" а в ErrorMessage ставят непосредственный текст ошибки. И получается, что ErrorMessage отображается в ValidationSummary, а Text отображается на месте RegularExpressionValidator Очень удобно и красиво смотрится :о)

Автор: tol05 29.6.2007, 10:47
Mymik
Цитата(Mymik @  29.6.2007,  10:12 Найти цитируемый пост)
свойство Text у RegularExpressionValidator ставят "*" 
 это конечно красиво smile но сути вопроса не меняет. Нужно чтобы 
Цитата(draiv @  28.6.2007,  12:29 Найти цитируемый пост)
каждый из трех валидаторов самостоятельно
 не выводил, а только саммари (как я понял)
А Text - просто перекрывает ErrorMessage у валидотора, но все равно, возле каждого валидатора отображается сигнал об ошибке (ErrorMessage действительно пойдет в саммари, если конечно оно будет отображено smile

А по поводу - 
Цитата(Mymik @  29.6.2007,  10:12 Найти цитируемый пост)
нужно в ValidationSummary поставить ShowMessageBox="true"

так это вообще - просто декоративная добавка, к сообщению саммари на странице будет добавляться еще и мессаджбокс и дублировать то же сообщение.

Автор: draiv 29.6.2007, 11:52
Спасибо, разобрался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)