【问题标题】:DropDownList RequiredFieldValidator in GridViewGridView 中的 DropDownList RequiredFieldValidator
【发布时间】:2012-04-23 16:12:41
【问题描述】:

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

我需要RequiredFieldValidator 只为正在访问的当前行触发。我已将 InitialValue 设置为正确的值,并让验证器触发,我遇到的问题是它会触发每一行,而不仅仅是当前正在处理的行。

有什么想法吗?

我在 GridView 的 DropDown 下的验证器:

<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>

【问题讨论】:

    标签: asp.net gridview drop-down-menu requiredfieldvalidator


    【解决方案1】:

    我相信你可以做这样的事情:

    <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”是您的数据行的标识符,例如您正在编辑的数据行的主键。这样,您就可以为每一行提供一个唯一的验证组。

    附:语法可能需要一些工作,我是凭记忆完成的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    相关资源
    最近更新 更多