将字符串数组绑定到下拉列表

本文关键字:下拉列表 绑定 数组 字符串 | 更新日期: 2023-09-27 18:17:06

一个我从未解决的问题。我将用两个代码示例来说明,其中一个可以工作,另一个不能:

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>

第一个DropDownList填充得很好,没有任何错误,因为familyfontlist的每个对象都有一个属性'Name',它与DataText和DataValue字段绑定。

第二个根本没有属性它只是一个字符串数组。

将字符串数组绑定到下拉列表

可以绑定数组但是必须移除DataTextFieldDataValueField属性

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