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>
...
これは正常です。しかし、エラーメッセージが表示されなくても、最初のテーブル行はその領域を保持しています。これにより、ページが読み込まれるときに不必要なスペースが存在するため、UI上のUIの表示が悪くなります。
ページがロードされているときと検証エラーがないときに、最初の行(検証のエラーメッセージ行)のスペースを非表示にするにはどうすればよいですか?あなたのバリデータに
Display="Dynamic"
プロパティを設定する必要が
これでも空の行がレンダリングされるため、問題が完全に解決されない場合があります。 – Filburt
私はそれを持っているので、tr要素を完全に隠したいと思うので、JSスクリプトを使ってカスタムを作らなければならないと思います。たとえば、検証メッセージにonchangeイベントを追加すると、それはcssが変更され、最初のtrに対してcssが変更されて表示されます。 –
[検証に基づくコントロールのスタイルを変更する(ASP.NET)](http://stackoverflow.com/a/1405177/205233)には解決策があるかもしれません。 – Filburt