1

为了测试,我尝试了 customvalidation

function ClientValidate(sender, args) { 
       //return false for testing...
       args.IsValid = false;

    }

 <asp:CustomValidator runat="server" ID="CustomValidator1" ControlToValidate="ddldetail"
                        Text="Please select" ValidateEmptyText="true"    
                        ClientValidationFunction="ClientValidate"  
                        Display="Dynamic">     
                    </asp:CustomValidator>

编辑:这就是我想要发生的事情:

在此处输入图像描述

如何验证下拉列表,我已经做了无数次但我在这里做错了什么?任何第二双眼睛都可能发现它?如果用户没有选择任何帮助,我正在尝试验证下拉列表?

<asp:Button ID="btn" runat="server" Text="Submit" OnClick="btn_Click"  CausesValidation="true"/>

<asp:GridView ID="GVInputMapping" runat="server" AutoGenerateColumns="False" DataKeyNames="Id"
                     EnableModelValidation="True" onrowdatabound="GVInputMapping_RowDataBound">
                    <Columns>
                        <asp:BoundField DataField="Name" ControlStyle-Width="250px" HeaderText="Name" SortExpression="Name" />
                        <asp:TemplateField>
                            <ItemTemplate>
                        <asp:DropDownList runat="server" ID="ddldetail">
                        <asp:ListItem Selected="True" Value="0">Select me</asp:ListItem>
                        <asp:ListItem Value="1">abc</asp:ListItem>
                        <asp:ListItem Value="2">GHt</asp:ListItem>
                    </asp:DropDownList>
    <asp:RequiredFieldValidator ID="requiredDDL" runat="server" 
                        ControlToValidate="ddldetail" ErrorMessage="Please select" InitialValue="Select me"  Display="Dynamic"></asp:RequiredFieldValidator>

                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
4

1 回答 1

0

InitialValue将验证器设置为Select me,但该项目的Value实际上是0

<asp:DropDownList ID="DropDownList1" runat="server">
    <asp:ListItem Text="Select Me" Value="0" />
    <asp:ListItem Text="Foo" Value="1" />
    <asp:ListItem Text="Bar" Value="2" />
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ControlToValidate="DropDownList1" 
    ErrorMessage="Please select" 
    InitialValue="0"        
    Display="Dynamic">
</asp:RequiredFieldValidator>

您还需要为每一行分配一个唯一的验证组,否则将为每一行启动验证。要分配唯一的验证组,您可以使用以下列Id

ValidationGroup='<%# string.Format("Group_{0}", Eval("Id")) %>'

您可以将此添加到验证器和行中的按钮。

于 2012-05-09T21:36:26.177 回答