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

时间:2011-03-15 10:50:18

标签: 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>

并且代码背后绑定下拉列表

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;

4 个答案:

答案 0 :(得分:49)

<asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID" Display="Dynamic" 
    ValidationGroup="g1" runat="server" ControlToValidate="ControlID"
    Text="*" ErrorMessage="ErrorMessage"></asp:RequiredFieldValidator>

答案 1 :(得分: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" />

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

答案 2 :(得分:0)

我正在努力解决这个问题几天,直到我不得不建立新的Dropdown时遇到问题。我有几个DropDownList控件,并试图让没有运气的验证工作。一个是数据绑定,另一个是从aspx页面填充。我需要删除数据绑定一并添加第二个手动列表。在我的情况下,验证器失败,如果您构建了这样的下拉列表并查看了必需或比较验证器的任何值(0或-1):

<asp:DropDownList ID="DDL_Reason" CssClass="inputDropDown" runat="server">
<asp:ListItem>--Select--</asp:ListItem>                                                                                                
<asp:ListItem>Expired</asp:ListItem>                                                                                                
<asp:ListItem>Lost/Stolen</asp:ListItem>                                                                                                
<asp:ListItem>Location Change</asp:ListItem>                                                                                            
</asp:DropDownList>

然而,添加像这样的InitialValue可立即用于比较验证器。

<asp:ListItem Text="-- Select --" Value="-1"></asp:ListItem>

答案 3 :(得分:-1)

在必填字段验证程序标记

中添加InitialValue="0"
 <asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID"
      Display="Dynamic" ValidationGroup="g1" runat="server"
      ControlToValidate="ControlID"
      InitialValue="0" ErrorMessage="ErrorMessage">
 </asp:RequiredFieldValidator>
相关问题