C# Asp.net Gridview CompareValidator
我有一个具有多行(记录)的GridViewC# Asp.net Gridview CompareValidator,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个具有多行(记录)的GridView 它适用于一行,但是如果有多行,它将同时验证所有行 我理解这种情况的发生是因为ControlToValidate=“ddlacionstatus”对每一行重复 我试图设置ID,如ID=“ddlacionstatus”和ControlToValidate=“ddlacionstatus”,但它不起作用 我知道我可以编写自定义验证,但是有没有一个不需要自定义验证的简单解决方案 我需要的是每一行都是独立的 谢谢您的帮助。问题不在于ControlToVali
它适用于一行,但是如果有多行,它将同时验证所有行
我理解这种情况的发生是因为ControlToValidate=“ddlacionstatus”
对每一行重复
我试图设置ID,如ID=“ddlacionstatus”
和ControlToValidate=“ddlacionstatus”
,但它不起作用
我知道我可以编写自定义验证,但是有没有一个不需要自定义验证的简单解决方案
我需要的是每一行都是独立的
谢谢您的帮助。问题不在于
ControlToValidate
属性。将ValidationGroup
属性添加到具有相同值的行中的每个控件。但是,请确保GridView中的所有行都保持其唯一性。请参见下面的示例
<asp:DropDownList ID="DDLActionStatus" runat="server" ValidationGroup="MyGroup1" DataSourceID="LDSActionStatus" AppendDataBoundItems="True" DataTextField="Title" DataValueField="ReportActionStatusID" SelectedValue='<%# Bind("ReportActionStatusID") %>' Enabled='<%# (int)Eval("ReportActionStatusID") == 1 %>' Width="100%" />
<asp:Button ID="BtnActionStatus" runat="server" ValidationGroup="MyGroup1" CommandName="Update" Text="Save & Close" OnClientClick="return confirm('Are you sure? Once set, this can not be changed.')" Width="100%" />
<asp:CompareValidator ID="CVActionStatus" runat="server" ValidationGroup="MyGroup1" Operator="NotEqual" ValueToCompare="1" Type="Integer" ControlToValidate="DDLActionStatus" SetFocusOnError="true" ErrorMessage="Must set one of the Completion statuses" />
确保每行的ValidationGroup
不同
祝你一切顺利
<asp:DropDownList ID="DDLActionStatus" runat="server" ValidationGroup="MyGroup1" DataSourceID="LDSActionStatus" AppendDataBoundItems="True" DataTextField="Title" DataValueField="ReportActionStatusID" SelectedValue='<%# Bind("ReportActionStatusID") %>' Enabled='<%# (int)Eval("ReportActionStatusID") == 1 %>' Width="100%" />
<asp:Button ID="BtnActionStatus" runat="server" ValidationGroup="MyGroup1" CommandName="Update" Text="Save & Close" OnClientClick="return confirm('Are you sure? Once set, this can not be changed.')" Width="100%" />
<asp:CompareValidator ID="CVActionStatus" runat="server" ValidationGroup="MyGroup1" Operator="NotEqual" ValueToCompare="1" Type="Integer" ControlToValidate="DDLActionStatus" SetFocusOnError="true" ErrorMessage="Must set one of the Completion statuses" />