gpt4 book ai didi

asp.net - 没有客户端点击事件的单个按钮中的两个验证组

转载 作者:行者123 更新时间:2023-12-04 06:57:52 25 4
gpt4 key购买 nike

在多重网格中,我正在验证日期和金额等两个控件。当我按下 tabevent 时,它正在正确验证。当我按下保存按钮时,它没有验证。我正在使用两个验证组和两个验证摘要。然后在保存按钮中我也尝试了onclientclick()使用 javascript 的函数它工作正常,但如果我在日期和金额记录中给出正确的值,它不会保存。如何克服这个。

日期

 <asp:TemplateField HeaderText="Date">
<ItemTemplate>
<asp:TextBox ID="txtDate" Text='<%# Bind("AD_REF_DATE") %>' runat="server" CausesValidation="true"
ValidationGroup="group" Width="80px" AutoPostBack="true" OnTextChanged="txtDate_TextChanged"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CompareValidator ID="dateValidater" runat="server" ControlToValidate="txtDate"
Operator="DataTypeCheck" Type="Date" ValidationGroup="group" EnableClientScript="true"
ErrorMessage="Please enter a valid date (mm/dd/yyyy)." SetFocusOnError="true" Display="None">*</asp:CompareValidator>
</ItemTemplate>
</asp:TemplateField>

数量
<asp:TemplateField HeaderText="Amount">
<ItemTemplate>
<asp:TextBox ID="txtAmount" MaxLength="17" Text='<%# Bind("AD_AMOUNT") %>' CausesValidation="true"
ValidationGroup="req" runat="server" AutoPostBack="true">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:RegularExpressionValidator ID="regVal1" runat="server" ControlToValidate="txtAmount"
ErrorMessage="Format(13int,5deci)" ValidationExpression="^[1-9]\d{0,12}(\.\d{1,2})?%?$"
ValidationGroup="req" Display="None" EnableClientScript="true" SetFocusOnError="true">
</asp:RegularExpressionValidator>
</ItemTemplate>
</asp:TemplateField>

验证摘要:
 <asp:ValidationSummary ID="ValidationSummary3" runat="server" ValidationGroup="req"
HeaderText="Amount:Invalid Format" DisplayMode="BulletList" ShowMessageBox="true"
ShowSummary="false" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="group"
HeaderText="Date:Invalid Format" DisplayMode="BulletList" ShowMessageBox="true"
ShowSummary="false" />

按钮保存:
 <asp:Button ID="ButtonSave" runat="server"  CssClass="button" CausesValidation="true" Text="<%$Resources:TJFAS501, ButtonSave %>"
OnClick="ButtonSave_Click" TabIndex="6" />

如何在按钮保存中验证这一点,还应该显示两个弹出框?

最佳答案

您可能想尝试通过按钮的 OnClientClick 手动触发两个组的验证功能。因为您有两个验证组,您需要对其进行验证。目前您的验证没有触发,因为您没有任何 ValidationGroup分配给您的按钮,因此它只是在寻找没有 ValidationGroup 的验证器已定义(您的组是:组和请求)。

您可以调用Page_ClientValidate()通过 javascript 手动触发验证检查(确保将按钮上的 CauseValidation 设置为 false),并且它有一个可选参数,用于获取验证组。

<asp:Button ID="yourButton" runat="server" OnClick="ButtonSave_Click"
CausesValidation="false" TabIndex="6"
OnClientClick="return (Page_ClientValidate('group') && Page_ClientValidate('req'));" />

您可以阅读有关 Page_ClientValidate 的更多信息在 MSDN .

对于每个操作(例如您的按钮)只有一个验证组会更容易,但我假设您出于某种原因需要两个组。

关于asp.net - 没有客户端点击事件的单个按钮中的两个验证组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2324744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com