2010-02-17 18 views

risposta

85

Per la maggior parte si trattano come se si stanno convalidando qualsiasi altro tipo di controllo, ma utilizza la proprietà InitialValue del validatore campo obbligatorio.

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

In sostanza quello che sta dicendo è che la convalida avrà successo se si seleziona qualsiasi altro valore rispetto al 1 insieme in InitialValue nella DropDownList.

Se l'associazione dati è necessario inserire il valore "Selezionare" poi come segue

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

HI tizio, * questo è il mio codice che sto ancora in grado di ottenere il messaggio quando presento il pulsante – user242375

+0

Dopo l'associazione dati fa il tuo dropdownlist contiene un valore per 'Selectvalue'. Ho modificato la mia risposta per mostrare come. – Fishcake

+10

@Fishcake, è necessario avere InitialValue = "0". Tutto il resto nella tua risposta è buono. – strider

20

Supponiamo che la vostra discesa è:

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

ci sono due modi:

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

il secondo modo è quello di utilizzare un validatore confrontare:

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

Se l'associazione dei dati, penso che fosse ancora preferibile rispetto all'inserimento nel tuo elenco. Devi solo cambiare DropDownList per supportarlo. '' – ferics2

8

Se si utilizza una sorgente di dati, ecco un altro modo per farlo senza codice dietro.

Nota i seguenti punti chiave:

  • La ListItem di Value="0" sulla pagina aggiuntiva sorgente, non ha aggiunto nel codice
  • Il ListItem nella sorgente verrà sovrascritto se non si include AppendDataBoundItems="true" in il DropDownList
  • InitialValue="0" dice il validatore che questo è il valore che dovrebbe fuoco che validatore (come sottolineato in altre risposte)

Esempio:

<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

Risposta migliore Mi sono imbattuto nella mia ricerca per l'impostazione di un valore iniziale per un elenco a discesa che utilizza un'origine dati SQL. –

Problemi correlati