【发布时间】:2014-08-31 22:43:40
【问题描述】:
我有一个包含多行(记录)的 GridView。
<asp:DropDownList ID="DDLActionStatus" runat="server" DataSourceID="LDSActionStatus" AppendDataBoundItems="True" DataTextField="Title" DataValueField="ReportActionStatusID" SelectedValue='<%# Bind("ReportActionStatusID") %>' Enabled='<%# (int)Eval("ReportActionStatusID") == 1 %>' Width="100%" />
<asp:Button ID="BtnActionStatus" runat="server" 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" Operator="NotEqual" ValueToCompare="1" Type="Integer" ControlToValidate="DDLActionStatus" SetFocusOnError="true" ErrorMessage="Must set one of the Completion statuses" />
它适用于一行,但是如果有多行,它会同时验证所有行。
我知道这是因为 ControlToValidate="DDLActionStatus" 重复每一行。
我尝试将 ID 设置为 ID="DDLActionStatus<%# Eval('ReportActionStatusID') %>" 和 ControlToValidate="DDLActionStatus<%# Eval('ReportActionStatusID') %>",但它不起作用。
我知道我可以编写自定义验证,但是有不需要自定义验证的简单解决方案吗?
我需要的是对每一行进行独立验证。
感谢您的帮助。
【问题讨论】: