0

我有一个 GridView,其中有一个 TextField 列。我已经为这个 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

发生这种情况是因为您的 Button 具有验证组Display,因此单击它只会验证具有相同组的控件,即Display。我可以看到没有您的验证组,Textbox因此它不会在按钮单击中对其进行验证..,导致单击验证的 Button 添加相同的验证组在您的Textbox, RegularExpressionValidator, and RequiredFieldValidator too。

于 2013-07-01T11:19:28.343 回答
0

我认为这是因为他们没有相同的 ValidationGroup。尝试添加 ValidationGroup="Display"到您的验证器。

于 2013-07-01T11:20:52.250 回答
0

您是说在单击按钮时执行验证组显示。它只会验证具有您提到的验证组(显示)的控件。您没有为文本框验证器定义任何验证组尝试通过添加相同的验证组(显示)您的文本框、RegularExpressionValidatorRequiredFieldValidator

于 2013-07-01T11:30:19.087 回答