2011-03-15 8 views
29

Tengo una lista desplegable cuyo campo de valor y de texto están vinculados en el tiempo de ejecución. tiene --select-- como primer elemento con un valor de 0 y el resto de los valores están vinculados en tiempo de ejecución.Validación de la lista desplegable en Asp.net usando el validador de campo requerido

me han dado validaton grupo, tanto para el control y el validador como "g1" y Intialvalue=0

Pero aún así la página es la publicación de la espalda aunque esté seleccionada la opción --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> 

Y código detrás de obligar el menú desplegable

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; 

Respuesta

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

U puede ver mi post actualizado –

+1

Por favor, compruebe que se han puesto por encima de código en if (! IsPostBack) {} El método –

+0

sí lo es en el interior if (! IsPostBack) {} y llamé a ese código antes de cambiar un evento de cambio de botón de radio –

4

Aquí utilizar asp: CompareValidator, y comparar el valor de "seleccionar" opción.

Utilice Operator="NotEqual" ValueToCompare="0" para evitar que el usuario envíe la "selección".

<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" /> 

Al hacer lo anterior, si se selecciona la opción "seleccionar" a partir desplegable se mostrará el ErrorMessage.

-1

Añadir InitialValue="0" en Obligatorio etiqueta validador campo

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

¿Por qué tiene 'InitialValue =" - 1 "' y 'InitialValue =" 0 "'? –

+0

@nueverest, en la mayoría de los casos, cuando desarrollo datos para rellenarlos en un menú desplegable, el elemento predeterminado "Seleccionar ...." generalmente recibe un valor no positivo y distinto de cero, por lo tanto -1. Para los sistemas de valores basados ​​en cero, esto permite que el desarrollador compruebe '<0 'y para los sistemas de valores basados ​​en uno, la misma política' <0'. – GoldBishop

Cuestiones relacionadas