gpt4 book ai didi

c# - 指定 ValidationGroup 时 ValidationSummary 不起作用

转载 作者:太空狗 更新时间:2023-10-29 22:12:48 25 4
gpt4 key购买 nike

我在 ASP.NET 页面中有几个部分,需要单独验证它们。

每个部分都有自己的验证摘要部分,所以我想到了使用 ValidationSummary带有 ValidationGroup 属性的标记,但它不起作用。

以下代码有效,但会验证页面中的所有控件:

<asp:TextBox ID="field1" runat="server" TabIndex="1" MaxLength="20" />
<asp:RequiredFieldValidator ID="field1RequiredValidator" ControlToValidate="field1" runat="server"
Display="None" ErrorMessage="mandatory 1" />

<asp:TextBox ID="field2" runat="server" TabIndex="2" MaxLength="20" />
<asp:RequiredFieldValidator ID="field2RequiredValidator" ControlToValidate="field2" runat="server"
Display="None" ErrorMessage="mandatory 2" />

....

<asp:ValidationSummary ID="validationSummary" HeaderText="Sumary" runat="server" />

虽然以下不起作用(没有任何验证,提交时我只是转到向导中的下一页):

<asp:TextBox ID="field1" runat="server" TabIndex="1" MaxLength="20" />
<asp:RequiredFieldValidator ID="field1RequiredValidator" ControlToValidate="field1" runat="server"
Display="None" ErrorMessage="mandatory 1" ValidationGroup="xxxx" />

<asp:TextBox ID="field2" runat="server" TabIndex="2" MaxLength="20" />
<asp:RequiredFieldValidator ID="field2RequiredValidator" ControlToValidate="field2" runat="server"
Display="None" ErrorMessage="mandatory 2" ValidationGroup="xxxx" />

....

<asp:ValidationSummary ID="validationSummary" HeaderText="Sumary" runat="server" ValidationGroup="xxxx" />

我在这里错过了什么?是否需要额外的设置或其他什么?

最佳答案

ASP.NET 中的默认行为是,当用户单击未指定 ValidationGroup 的按钮(并且已将 CausesValidation 设置为 true), 验证不属于验证组的所有验证控件。

因此,要验证特定组,您需要设置应引起验证的按钮的 ValidationGroup 属性(也可能是 CausesValidation 属性)。

参见 MSDN documentation for Button.ValidationGroup有关详细信息和示例。

编辑:如果您需要验证页面上的所有组,最简单的方法当然是根本不使用验证组。但是,如果您只想验证一些(但不止一个)组,您可以在服务器上(在按钮的点击处理程序中)通过调用:

Validate("groupOne");
Validate("groupTwo");
// ...

请注意,这不会触发客户端验证。参见示例 this post有关单击一次按钮触发多个验证组的讨论。

编辑:我找到了 a blog post描述如何为 ASP.NET 构建可重用的“多验证组按钮”,并附有代码。还没有尝试过,但看起来很有希望。

关于c# - 指定 ValidationGroup 时 ValidationSummary 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595546/

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