0

TextField 列を含む GridView があります..この TextField 列の検証を設定して、入力が必要になるように (つまり、オプションではない)、入力が正の整数のみになるようにしました..

テキストフィールドが空であるか、正の整数値がない場合にエラーが表示されますが、GridView にエラーがある場合でも実行されるサーバー側のボタンがあります..

入力エラーが発生した場合、ボタンの処理を行わないようにしたい..エラーが発生した場合でもボタンのクリックイベントが呼び出されるため、現在これは発生しません..

GridView マークアップ コード:

<asp:GridView ID="EPSAndTSRValuesInputGridView" runat="server" ShowFooter="true"
    AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField HeaderText="EPS Value">
            <ItemTemplate>
                <asp:TextBox ID="EPSValue" Text='<%# Eval("EPSValue") %>' runat="server" CausesValidation="True" ValidationGroup="Display"></asp:TextBox>
                <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Enter a valid value for EPS!"
                        ValidationExpression="^\d*$" ControlToValidate="EPSValue" ValidationGroup="Display"/>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*"
                        ControlToValidate="EPSValue" ValidationGroup="Display"/>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

次のアクションを実行するボタン:

<asp:Button ID="btnDisplayReport2" 
    runat="server" CssClass="ButtonStyle" 
    Text="Display Report" ValidationGroup="Display" OnClick="btnDisplayReport2_Click" CausesValidation="true"/>
4

3 に答える 3

1

これは、ボタンに検証グループDisplayがあるため、クリックすると同じグループのコントロールのみが検証されるため、つまりDisplay、検証グループがないことがわかりTextboxます。ボタンのTextboxRegularExpressionValidator、およびRequiredFieldValidator あまりにも同じ検証グループを追加します。

于 2013-07-01T11:19:28.343 に答える