Подтвердить что ты не робот

Скрыть ненужное пространство, когда сообщения об ошибках проверки не запускаются на странице ASP

Я хочу проверить некоторые текстовые поля на моей странице ASP.NET, используя обязательную проверку поля в ASP. И я хочу отобразить это сообщение об ошибке в верхней части страницы.

<table>
    <tr><td colspan='2'><b> User Input</b><br/></td></tr>
    <tr><td colspan='2'>
            <%--input validations--%>
            <asp:RegularExpressionValidator ID="regexpName1" runat="server"     
                ErrorMessage="This expression does not validate." 
                ControlToValidate="TextBox_adTitle"     
                ValidationExpression="^[a-zA-Z'.\s]{1,40}$" />
            <br />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="TextBox_1" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
        <br />
        </td>
    </tr>
    <tr><td>
        <asp:Label ID="Label_name" runat="server" Text="Seller Name * "></asp:Label>
        </td>
        <td>
             <asp:TextBox ID="TextBox_1" runat="server" ReadOnly="True" ></asp:TextBox>        
        </td>
    </tr>

...

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

Как я могу скрыть пространство первой строки (строка сообщений об ошибках проверки) во время загрузки страницы и при отсутствии ошибки проверки?

4b9b3361

Ответ 1

Я нашел хороший способ решить эту проблему.

Поместите свою проверку внутри панели и сделайте их отображаемыми как "none".

  <asp:Panel ID="Panel1" runat="server" >
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ErrorMessage="RequiredFieldValidator1" ControlToValidate="TextBox1" Display="None"></asp:RequiredFieldValidator><br />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ErrorMessage="RequiredFieldValidator2" ControlToValidate="TextBox2" Display="None"></asp:RequiredFieldValidator><br />
</asp:Panel>

И верхняя часть страницы ASP Добавьте сводку проверки.

<table>
        <tr>
        <td> <asp:ValidationSummary id="summery1" runat="server"/></td>
        </tr>
    ....

Сводка валидации получает только необходимое место на странице.

Ответ 2

Вам нужно установить

Display="Dynamic"

для вашего валидатора, это приведет к желаемому поведению.

Ответ 3

Просто добавьте свойство.

Display = "Dynamic"

в вашем валидаторе, пример ниже.

<asp:RequiredFieldValidator ID="rfvEmail" runat="server" Display="Dynamic" ForeColor="Red" ErrorMessage="Please enter Email" ControlToValidate="txtEmail" ValidationGroup="addManufacture"></asp:RequiredFieldValidator>

Ответ 4

Простое решение. Добавьте это в валидатор:

CssClass="AT3RValidator"

.AT3RValidator {
    display:none;
}

И установите для отображения = "Динамический", но это все равно будет отображать пустое пространство, потому что это устанавливает видимость: скрытый стиль для сгенерированного диапазона валидатора, который отличается от отображения: none, он отображает нежелательное пустое пространство.

Ответ 5

Чтобы скрыть валидаторы, сделайте это

<tr>
    <td>TEXT</td>
</tr>
<tr>
    <td>INPUT
    <br/>
    <asp:validator....></>
    </td>
</tr>

ИЛИ

<tr>
    <td>TEXT</td>
</tr>
<tr>
    <td>INPUT
    <div>
        <asp:validator....></>
    </div>
    </td>
</tr>