Html 当验证错误消息未在 ASP 页中触发时隐藏不必要的空间
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10562943/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Hide unnecessary space when validation error messages are not firing in ASP page
提问by devan
I want to validate some text boxes in my ASP.NET page using ASP required field validation. And I want to display that error message in top of the page.
我想使用 ASP 必填字段验证来验证我的 ASP.NET 页面中的一些文本框。我想在页面顶部显示该错误消息。
<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>
...
This is working fine. However, the first table row is keeping its space even error messages are not displaying on it. This will cause the UI to look bad on the page since unnecessary space is there when the page loads.
这工作正常。但是,即使没有显示错误消息,第一个表格行也会保留其空间。这将导致 UI 在页面上看起来很糟糕,因为页面加载时会有不必要的空间。
How can I hide the space of the first row (validation's error messages row) while the page is loading and when there is no validation error?
如何在页面加载和没有验证错误时隐藏第一行(验证的错误消息行)的空间?
采纳答案by devan
I found a good way to resolve this.
我找到了解决这个问题的好方法。
Put your validation inside a panel, and make them display as "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>
And top of your ASP page Add a Validation Summary.
并在您的 ASP 页面顶部添加验证摘要。
<table>
<tr>
<td> <asp:ValidationSummary id="summery1" runat="server"/></td>
</tr>
....
Validation summary only gets required space in Page.
验证摘要仅在页面中获得所需的空间。
回答by Johnny_D
You need to set
你需要设置
Display="Dynamic"
property to your validator, this will cause desirable behaviour.
属性给您的验证器,这将导致理想的行为。
回答by peekayyy
Add the below property in field validator:
在字段验证器中添加以下属性:
display="dynamic"
回答by PK-1825
Just add Property.
只需添加属性。
Display="Dynamic"
显示=“动态”
within your Validator, Example give below.
在您的验证器中,示例如下。
<asp:RequiredFieldValidator ID="rfvEmail" runat="server" Display="Dynamic" ForeColor="Red" ErrorMessage="Please enter Email" ControlToValidate="txtEmail" ValidationGroup="addManufacture"></asp:RequiredFieldValidator>
回答by Tone ?koda
Simple solution. Add this to validator:
简单的解决方案。将此添加到验证器:
CssClass="AT3RValidator"
.AT3RValidator {
display:none;
}
And set to display="Dynamic", but that will still render empty space because that sets visibility:hidden style to generated validator span, which is different from display:none, it renders undesired empty space.
并设置为 display="Dynamic",但这仍然会呈现空白空间,因为它将可见性:隐藏样式设置为生成的验证器跨度,这与 display:none 不同,它会呈现不需要的空白空间。
回答by user1075940
To hide validators do this
要隐藏验证器,请执行此操作
<tr>
<td>TEXT</td>
</tr>
<tr>
<td>INPUT
<br/>
<asp:validator....></>
</td>
</tr>
OR
或者
<tr>
<td>TEXT</td>
</tr>
<tr>
<td>INPUT
<div>
<asp:validator....></>
</div>
</td>
</tr>