2011-12-07 24 views
6

Una pregunta que nunca he resuelto. Lo ilustraré con dos ejemplos de código en el que uno trabaja y el otro no:matriz de unión de cadena 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> 

La primera DropDownList rellena bien sin ningún error, ya que cada objeto tiene una propiedad oFamilyFontList 'Nombre' que se une con los campos DataText y DataValue.

El segundo no tiene propiedades en absoluto y que es sólo una matriz de cadenas. ¿Qué puedo poner posiblemente en ambos campos para que funcione?

+0

Tal vez una pregunta estúpida - pero - ¿Hay algún valor en la matriz colorName? – Fischermaen

+0

Por supuesto hay, AVD han respondido a mi pregunta. –

Respuesta

6

Sí se puede enlazar una matriz, pero hay que eliminar DataTextField y atributos DataValueField

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

realmente me siento estúpido. Muchas gracias por la respuesta, funcionó. –

+2

@yahyakh - No hay nada estúpido en ella. Nunca dude en pedir ayuda cuando sea claramente necesario. – adatapost