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>
...
これは正常に機能しています。ただし、最初のテーブル行は、エラーメッセージが表示されていなくても、そのスペースを維持しています。これにより、ページの読み込み時に不要なスペースが存在するため、ページのUIが見栄えが悪くなります。
ページの読み込み中および検証エラーがない場合、最初の行(検証のエラーメッセージ行)のスペースを非表示にするにはどうすればよいですか?
私はこれを解決する良い方法を見つけました。
検証をパネル内に配置し、「なし」として表示します。
<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"
プロパティを追加するだけです。
Display = "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とは異なり、不要な空のスペースをレンダリングします。