2011-12-07 21 views
6

Una domanda che non ho mai risolto. Illustrerò con due esempi di codice in cui si opera e l'altro non:Associazione di stringhe di stringhe a DropDownList?

Page_Load() 
{ 
     FontFamily[] oFamilyFontList = FontFamily.Families; 
     DropDownList_Fonts.DataSource = oFamilyFontList; 
     DropDownList_Fonts.DataBind(); 

     string[] colorName = System.Enum.GetNames(typeof(KnownColor)); 
     DropDownList_FontColor.DataSource = colorName; 
     DropDownList_FontColor.DataBind(); 
} 
<asp:DropDownList 
     ID="DropDownList_Fonts" DataTextField="Name" 
     DataValueField="Name" runat="server" > 
    </asp:DropDownList> 

    <asp:DropDownList 
     ID="DropDownList_FontColor" DataTextField="colorName" 
     DataValueField="colorName" runat="server" > 
    </asp:DropDownList> 

Il primo DropDownList popola bene senza errori, perché ogni oggetto oFamilyFontList ha una proprietà 'Nome' che lega con i campi DataText e DataValue.

Il secondo non ha proprietà ed è solo una serie di stringhe. Cosa posso inserire in entrambi i campi per farlo funzionare?

+0

Forse una domanda stupida - ma - ci sono dei valori nella matrice colorName? – Fischermaen

+0

Naturalmente, AVD ha risposto alla mia domanda. –

risposta

6

Sì, è possibile associare una matrice, ma è necessario rimuovere DataTextField e DataValueField attributi

<asp:DropDownList 
     ID="DropDownList_FontColor" 
     runat="server"> 
</asp:DropDownList> 
+1

mi sento davvero stupido. Grazie mille per la risposta, ha funzionato. –

+2

@yahyakh - Non c'è niente di stupido in questo. Non dovresti mai esitare a chiedere aiuto quando è chiaramente necessario. – adatapost