2010-02-17 13 views

Respuesta

85

En la mayoría de los casos, lo trata como si estuviera validando cualquier otro tipo de control pero utiliza la propiedad InitialValue del validador de campo requerido.

<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="your-dropdownlist" InitialValue="Please select" ErrorMessage="Please select something" /> 

Básicamente lo que está diciendo es que la validación tendrá éxito si cualquier otro valor que el conjunto 1 en InitialValue está seleccionado en la lista desplegable.

Si enlace de datos tendrá que insertar el valor "Por favor seleccione" después de la siguiente manera

this.ddl1.Items.Insert(0, "Please select"); 
+0

tipo HI, * este es mi código Todavía no puedo recibir el mensaje cuando envío el botón – user242375

+0

Después de la vinculación de datos, su lista desplegable contiene un valor para" Seleccionar valor ". He editado mi respuesta para mostrar cómo. – Fishcake

+10

@Fishcake, debe tener InitialValue = "0". Todo lo demás en tu respuesta es bueno. – strider

20

Suponga que su Desplegar lista es:

<asp:DropDownList runat="server" id="ddl"> 
<asp:ListItem Value="0" text="Select a Value"> 
.... 
</asp:DropDownList> 

tienes dos maneras:

<asp:RequiredFieldValidator ID="re1" runat="Server" InitialValue="0".... 

la 2da forma es usar un validador de comparación:

<asp:CompareValidator ID="re1" runat="Server" ValueToComare="0" ConroltoCompare="ddl" Operator="Equel".... 
+0

Si el enlace de datos, creo que esto todavía se prefiere antes de insertarlo en su lista. Solo tienes que cambiar la DropDownList para que sea compatible. '' – ferics2

8

Si está utilizando una fuente de datos, aquí hay otra forma de hacerlo sin código.

Tenga en cuenta los siguientes puntos clave:

  • El ListItem de Value="0" está en la página de origen, no se agrega en el código
  • El ListItem en la fuente se sobrescribirán si no se incluye en AppendDataBoundItems="true" el DropDownList
  • InitialValue="0" le dice al validador que este es el valor que debe activar ese validador (como se señala en otras respuestas)

Ejemplo:

<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> 
+1

La mejor respuesta que he encontrado en mi búsqueda para establecer un valor inicial para una lista desplegable que utiliza un origen de datos SQL. –

Cuestiones relacionadas