24

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が見栄えが悪くなります。

ページの読み込み中および検証エラーがないときに、最初の行(検証のエラーメッセージ行)のスペースを非表示にするにはどうすればよいですか?

4

6 に答える 6

58

設定する必要があります

Display="Dynamic"

バリデーターのプロパティ、これは望ましい動作を引き起こします。

于 2012-05-12T11:22:39.677 に答える
5

以下のプロパティをフィールドバリデーターに追加します。

display="dynamic"
于 2018-04-05T19:33:57.383 に答える
2

私はこれを解決する良い方法を見つけました。

検証をパネル内に配置し、「なし」として表示します。

  <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>
    ....

検証サマリーは、ページ内の必要なスペースのみを取得します。

于 2012-05-16T08:10:56.077 に答える
1

プロパティを追加するだけです。

Display="ダイナミック"

バリデーター内で、例を以下に示します。

<asp:RequiredFieldValidator ID="rfvEmail" runat="server" Display="Dynamic" ForeColor="Red" ErrorMessage="Please enter Email" ControlToValidate="txtEmail" ValidationGroup="addManufacture"></asp:RequiredFieldValidator>
于 2016-03-03T07:25:01.307 に答える
0

シンプルなソリューション。これをバリデーターに追加します。

CssClass="AT3RValidator"

.AT3RValidator {
    display:none;
}

そしてdisplay="Dynamic"に設定しますが、それでも可視性:非表示スタイルが生成されたバリデータースパンに設定されるため、空のスペースがレンダリングされます。これはdisplay:noneとは異なり、不要な空のスペースをレンダリングします。

于 2015-05-18T11:07:18.637 に答える
-1

バリデーターを非表示にするには、これを行います

<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>
于 2013-12-08T09:57:49.437 に答える