首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.net Gridview CompareValidator

Asp.net Gridview CompareValidator
EN

Stack Overflow用户
提问于 2014-08-31 22:43:40
回答 1查看 1.1K关注 0票数 0

我有一个多行(记录)的GridView。

代码语言:javascript
复制
<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') %>",但是它不起作用。

我知道我可以编写一个自定义验证,但是有一个简单的解决方案不需要自定义验证吗?

我需要的是每一行都是独立验证的。

谢谢你帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-31 23:34:18

问题不在ControlToValidate属性中。向具有相同值的行中的每个控件添加一个ValidationGroup属性。但是,确保它对于GridView中的所有行都是唯一的。参见下面的示例。

代码语言:javascript
复制
<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是不同的。

万事如意!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25596946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档