Проверка выпадающего списка в Asp.net Использование обязательного поля проверки - PullRequest
29 голосов
/ 15 марта 2011

У меня есть Dropdownlist, поле значения и текстовое поле которого связываются во время выполнения.--select-- в качестве первого элемента имеет значение 0, а остальные значения связываются во время выполнения.

Я указал группу проверки для элемента управления и валидатора как "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 ]

49 голосов
/ 15 марта 2011
<asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID" Display="Dynamic" 
    ValidationGroup="g1" runat="server" ControlToValidate="ControlID"
    Text="*" ErrorMessage="ErrorMessage"></asp:RequiredFieldValidator>
5 голосов
/ 15 октября 2011

Здесь используйте asp: CompareValidator и сравните значение с параметром «выбрать».

Используйте Operator="NotEqual" ValueToCompare="0", чтобы запретить пользователю отправлять "select".

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

0 голосов
/ 22 мая 2018

Я боролся с этим в течение нескольких дней, пока не столкнулся с проблемой, когда мне пришлось построить новый 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>
0 голосов
/ 10 июня 2015

Добавить InitialValue="0" в поле Обязательное поле проверки

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