Asp.net GridView中的DropDownList RequiredFieldValidator

Asp.net GridView中的DropDownList RequiredFieldValidator,asp.net,gridview,drop-down-menu,requiredfieldvalidator,Asp.net,Gridview,Drop Down Menu,Requiredfieldvalidator,我有一个asp.net GridView和一个DropwDownlist控件,还有一堆其他文本框用于文本输入等。用户可以向网格中添加多行并更改现有数据等 我需要RequiredFieldValidator仅为正在访问的当前行激发。我已经将InitialValue设置为正确的值,并启动了验证器,我遇到的问题是,它针对每一行而不是当前正在处理的一行启动 有什么想法吗 GridView下拉列表下的我的验证器: <asp:RequiredFieldValidator ID="rfRoles" ru

我有一个asp.net GridView和一个DropwDownlist控件,还有一堆其他文本框用于文本输入等。用户可以向网格中添加多行并更改现有数据等

我需要RequiredFieldValidator仅为正在访问的当前行激发。我已经将InitialValue设置为正确的值,并启动了验证器,我遇到的问题是,它针对每一行而不是当前正在处理的一行启动

有什么想法吗

GridView下拉列表下的我的验证器:

<asp:RequiredFieldValidator ID="rfRoles" runat="server" ErrorMessage="Role Required"
     ControlToValidate="ddlRole" ValidationGroup=roles InitialValue="-1" Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
<asp:ValidationSummary ID="validateRole" runat="server" ShowMessageBox="True" ShowSummary="false" ValidationGroup="roles" />

网格中的“我的保存”按钮:

<EditItemTemplate>
<asp:LinkButton ID="lnkSave" runat="server" Text="Save" CommandName="Update" CausesValidation="true" ForeColor="#AE0917" ValidationGroup="roles" Font-Bold="true"></asp:LinkButton></EditItemTemplate>

我相信您可能能够做到以下几点:

<EditItemTemplate>
<asp:RequiredFieldValidator ID="rfRoles" runat="server" ErrorMessage="Role Required"
    ControlToValidate="ddlRole" ValidationGroup="roles<%# Eval("Id") %>" InitialValue="-1" Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
<asp:ValidationSummary ID="validateRole" runat="server" ShowMessageBox="True" ShowSummary="false" ValidationGroup="roles<%# Eval("Id") %>" />

<asp:LinkButton ID="lnkSave" runat="server" Text="Save" CommandName="Update" CausesValidation="true" ForeColor="#AE0917"ValidationGroup="roles<%# Eval("Id") %>" Font-Bold="true"></asp:LinkButton>
</EditItemTemplate>

其中“Id”是数据行的标识符,例如正在编辑的数据行的主键。这样,您可以为每一行指定一个唯一的验证组


另外,语法可能需要做一些工作,我是根据记忆来做的。

通过这篇文章,我找到了适合我的正确语法:所以到处都是要点!非常感谢,我真的很感激!