У меня есть DropDownList
, связанный с SqlDataSource
для отображения значений из базы данных.
Я не могу проверить с помощью RequiredFieldValidator
.
У меня есть DropDownList
, связанный с SqlDataSource
для отображения значений из базы данных.
Я не могу проверить с помощью RequiredFieldValidator
.
По большей части вы относитесь к нему так, как будто вы проверяете какой-либо другой вид контроля, но используете свойство InitialValue для обязательного поля validator.
<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="your-dropdownlist" InitialValue="Please select" ErrorMessage="Please select something" />
В основном, это говорит о том, что проверка будет успешной, если в выпадающем списке выбрано любое другое значение, чем 1, установленное в InitialValue.
Если для привязки данных вам нужно будет вставить значение "Пожалуйста, выберите" после этого, как показано ниже.
this.ddl1.Items.Insert(0, "Please select");
Предположим, что ваш раскрывающийся список:
<asp:DropDownList runat="server" id="ddl">
<asp:ListItem Value="0" text="Select a Value">
....
</asp:DropDownList>
У вас есть два способа:
<asp:RequiredFieldValidator ID="re1" runat="Server" InitialValue="0"....
второй способ - использовать валидатор сравнения:
<asp:CompareValidator ID="re1" runat="Server" ValueToComare="0" ConroltoCompare="ddl" Operator="Equel"....
Если вы используете источник данных, здесь другой способ сделать это без кода.
Обратите внимание на следующие ключевые моменты:
ListItem
Value="0"
находится на исходной странице, не добавляется в кодListItem
в источнике будет перезаписан, если вы не включите
AppendDataBoundItems="true"
в DropDownList
InitialValue="0"
сообщает валидатору, что это значение, которое
должен уволить этот валидатор (как указано в других ответах).Пример:
<asp:DropDownList ID="ddlType" runat="server" DataSourceID="sdsType"
DataValueField="ID" DataTextField="Name" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="--Please Select--" Selected="True"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvType" runat="server" ControlToValidate="ddlType"
InitialValue="0" ErrorMessage="Type required"></asp:RequiredFieldValidator>
<asp:SqlDataSource ID="sdsType" runat="server"
ConnectionString='<%$ ConnectionStrings:TESTConnectionString %>'
SelectCommand="SELECT ID, Name FROM Type"></asp:SqlDataSource>