Asp.net中的下拉列表验证使用必填字段验证器

Ana*_*r M 29 asp.net requiredfieldvalidator

我有Dropdownlist,其值字段和文本字段在运行时绑定.它具有--select--值为的第一项,0 其余值在运行时绑定.

我已经给validaton组对照和验证的"g1"Intialvalue=0

但即使我选择了--select--选项,页面仍会回发.

<asp:DropDownList AutoPostBack="true" CssClass="dropdown" ValidationGroup="g1" 
    ID="ddlReportType" runat="server" 
    OnSelectedIndexChanged="ddlReportType_SelectedIndexChanged"></asp:DropDownList>

<asp:RequiredFieldValidator ControlToValidate="ddlReportType" ID="RequiredFieldValidator1"
ValidationGroup="g1" CssClass="errormesg" ErrorMessage="Please select a type"
InitialValue="0" runat="server"  Display="Dynamic">
</asp:RequiredFieldValidator>
Run Code Online (Sandbox Code Playgroud)

和代码背后绑定下拉列表

ddlReportType.Items.Clear();
ddlReportType.DataSource = dt.Tables[0];
ddlReportType.DataTextField = "ReportType";
ddlReportType.DataValueField = "ReportTypeID";
ddlReportType.DataBind();
ddlReportType.Items.Insert(0, new ListItem("--Select--", "0"));
//ddlReportType.Items[0].Value = "0";
ddlReportType.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)

ash*_*lia 49

<asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID" Display="Dynamic" 
    ValidationGroup="g1" runat="server" ControlToValidate="ControlID"
    Text="*" ErrorMessage="ErrorMessage"></asp:RequiredFieldValidator>
Run Code Online (Sandbox Code Playgroud)


小智 5

这里使用asp:CompareValidator,并将值与"select"选项进行比较.

使用Operator="NotEqual" ValueToCompare="0"以防止用户提交的"选择".

<asp:CompareValidator ControlToValidate="ddlReportType" ID="CompareValidator1"
    ValidationGroup="g1" CssClass="errormesg" ErrorMessage="Please select a type"
    runat="server" Display="Dynamic" 
    Operator="NotEqual" ValueToCompare="0" Type="Integer" />
Run Code Online (Sandbox Code Playgroud)

当您执行上述操作时,如果从下拉列表中选择"选择"选项,则会显示ErrorMessage.