web-dev-qa-db-fra.com

Validation de la liste déroulante dans Asp.net à l'aide du validateur de champ requis

J'ai Dropdownlist dont le champ de valeur et le champ de texte sont liés au moment de l'exécution . Il a --select-- comme premier élément avec la valeur 0 Le reste des valeurs est lié au moment de l'exécution.

J'ai donné le groupe validaton pour le contrôle et le validateur sous la forme "g1" Et Intialvalue=0

Mais la page est toujours postée même si je sélectionne l'option --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>

Et code derrière pour lier la liste déroulante 

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;
29
Anand Kumar M
<asp:RequiredFieldValidator InitialValue="-1" ID="Req_ID" Display="Dynamic" 
    ValidationGroup="g1" runat="server" ControlToValidate="ControlID"
    Text="*" ErrorMessage="ErrorMessage"></asp:RequiredFieldValidator>
48
ashish.chotalia

Ici, utilisez asp: CompareValidator et comparez la valeur à l'option "select". 

Utilisez Operator="NotEqual" ValueToCompare="0" pour empêcher l'utilisateur de soumettre le "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" />

Lorsque vous procédez ci-dessus, si vous sélectionnez l'option "sélectionner" dans la liste déroulante, la variable ErrorMessage apparaît.

5
keerthi

Je me débattais avec cela pendant quelques jours jusqu'à ce que je tombe sur la question lorsque je devais créer un nouveau Dropdown. J'avais plusieurs contrôles DropDownList et j'ai essayé de faire fonctionner la validation sans succès. L'un était databound et l'autre était rempli à partir de la page aspx. J'avais besoin de supprimer la base de données et d'ajouter une deuxième liste manuelle. Dans mon cas, les validateurs ont échoué si vous aviez créé un menu déroulant comme celui-ci et consulté n'importe quelle valeur (0 ou -1) pour un validateur requis ou comparatif

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

Cependant, l'ajout de InitialValue comme ceci fonctionnait instantanément pour un validateur de comparaison.

<asp:ListItem Text="-- Select --" Value="-1"></asp:ListItem>
0
user1431356