Скрыть ненужное место, когда сообщения об ошибках проверки не запускаются на странице 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>
...
Это работает нормально. Однако первая строка таблицы сохраняет свое место, даже если сообщения об ошибках не отображаются на ней. Это приведет к тому, что пользовательский интерфейс будет выглядеть плохо на странице, поскольку при загрузке страницы появляется лишнее место.
Как я могу скрыть пространство первой строки (строка сообщений об ошибках валидации) во время загрузки страницы и при отсутствии ошибки валидации?
6 ответов
Я нашел хороший способ решить эту проблему.
Поместите свою проверку в панель, и сделайте так, чтобы они отображались как "нет".
<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>
....
Сводка проверки получает только необходимое место на странице.
Вам нужно установить
Display="Dynamic"
свойство вашего валидатора, это приведет к желаемому поведению.
Добавьте следующее свойство в поле валидатора:
display="dynamic"
Просто добавьте недвижимость.
Дисплей ="Dynamic"
в вашем валидаторе, пример приведен ниже.
<asp:RequiredFieldValidator ID="rfvEmail" runat="server" Display="Dynamic" ForeColor="Red" ErrorMessage="Please enter Email" ControlToValidate="txtEmail" ValidationGroup="addManufacture"></asp:RequiredFieldValidator>
Простое решение Добавьте это в валидатор:
CssClass="AT3RValidator"
.AT3RValidator {
display:none;
}
И установите для display="Dynamic", но это все равно будет отображать пустое пространство, потому что это устанавливает видимость: скрытый стиль для сгенерированного диапазона валидатора, который отличается от display: none, он отображает нежелательное пустое пространство.
Чтобы скрыть валидаторы, сделайте это
<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>