web-dev-qa-db-fra.com

Comment ajouter un RequiredFieldValidator au contrôle DropDownList?

J'ai un DropDownList lié à unSqlDataSource pour afficher les valeurs de la base de données.

Je ne parviens pas à valider avec une RequiredFieldValidator.

58
user242375

Dans la plupart des cas, vous le traitez comme si vous validiez tout autre type de contrôle tout en utilisant la propriété InitialValue du validateur de champ requis.

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

En gros, cela signifie que la validation aboutira si une valeur autre que le 1 défini dans InitialValue est sélectionnée dans la liste déroulante.

Si la liaison de données, vous devez insérer la valeur "Veuillez sélectionner" ensuite comme suit

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

Supposons que votre liste déroulante soit:

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

Vous avez deux moyens:

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

la deuxième méthode consiste à utiliser un validateur de comparaison:

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

Si vous utilisez une source de données, voici une autre façon de le faire sans code derrière.

Notez les points clés suivants:

  • La ListItem de Value="0" est sur la page source, non ajoutée dans le code
  • La ListItem de la source sera écrasée si vous n'incluez pas AppendDataBoundItems="true" dans la DropDownList
  • InitialValue="0" indique au validateur qu'il s'agit de la valeur que Doit déclencher ce validateur (comme indiqué dans d'autres réponses)

Exemple:

<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>
10
Tony L.

InitialValue = "0": la validation initiale sera déclenchée lorsque le 0ème élément d'index est sélectionné dans ddl.

<asp:RequiredFieldValidator InitialValue="0" Display="Dynamic" CssClass="error" runat="server" ID="your_id" ValidationGroup="validationgroup" ControlToValidate="your_dropdownlist_id" />
0
Bhavin