2011-02-23 18 views
5

Tengo una lista desplegable que estoy cargando desde el lado del servidor.Validador para la lista desplegable en asp.net

<asp:DropDownList ID="ddlOne" runat="server" CssClass="dropDrownClass" Width="80%"> 

En el lado del servidor, después de cargar el menú desplegable, añado

- Seleccione -

quiero para asegurarse de que si se selecciona lo que lo haría mostrar el mensaje de error Por lo que he escrito

<asp:CompareValidator ID="CompareValidator1" runat="server" 
          ControlToValidate="ddlOne" ValueToCompare="-- Please Select --" Operator="Equal" Type="String" ErrorMessage="CompareValidator"></asp:CompareValidator> 
         <asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" TargetControlID="CompareValidator1" runat="server"> 
         </asp:ValidatorCalloutExtender> 

Pero me muestra el mensaje de error cada vez que estoy seleccionando cualquier cosa en la lista desplegable. y cuando he cambiado el validador para

<asp:CompareValidator ID="CompareValidator1" runat="server" 
          ControlToValidate="ddlOne" ValueToCompare="0" Operator="Equal" Type="Integer" ErrorMessage="CompareValidator"></asp:CompareValidator> 

estoy recibiendo el mensaje de error en cada selección, excepto la primera, que es - Seleccione -.

Por favor, hágamelo saber cómo validar el elemento puño de la lista desplegable

NÚMERO 2

Me estoy haciendo doble mensaje, uno en la lista desplegable [que está mostrando el error "Carson63000" en rojo ] y uno como emergente [llamada del validador]. El mismo mensaje. Quiero que solo el texto del validador muestre el mensaje.

Respuesta

11

Su validador comparará el valor del elemento seleccionado de la lista desplegable, no el texto . La manera más fácil es a menudo tener una cadena vacía para el valor del ítem "Por favor seleccionar", tener un valor no vacío para los otros ítems, y luego simplemente usar un RequiredFieldValidator.

Además, un CompareValidator con ValueToCompare="-- Please Select --" y Operator="Equal" significa: verifique el valor del menú desplegable y valide que es igual a "- Seleccione -"; si no, muestre el error. Lo cual es exactamente lo contrario de lo que necesita: le gustaría cambiar el operador a Operator="NotEqual" si desea tomar el enfoque de usar un CompareValidator.

+0

Se está trabajando muy bien. Gracias. Pero estoy recibiendo un mensaje dual. Uno del extensor de llamadas y otro de la lista desplegable. Quiero mostrar el mensaje solo una vez. – Chris

+1

@Chris, me temo que nunca he usado ValidatorCalloutExtender. Eso es algo de ASP.NET AJAX, ¿verdad? ¿Has intentado agregar 'Display =" None "' al CompareValidator? – Carson63000

+0

observe que si el valor para comparar fuera una cadena vacía, tendría que usar un validador de campo obligatorio (vea http://msdn.microsoft.com/en-us/library/db330ayw(v=vs.71).aspx) –

0

Cambiar el valorOperador:

<asp:CompareValidator ID="CompareValidator1" runat="server" 
    ControlToValidate="ddlOne" ValueToCompare="0" Operator="NotEqual" 
    Type="Integer" ErrorMessage="CompareValidator" /> 
Cuestiones relacionadas