绑定字符串数组到DropDownList?

6

我曾经遇到一个问题一直没有解决。我将用两个代码示例来说明,其中一个有效而另一个无效:

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>

第一个下拉列表框没有任何错误地填充,因为每个oFamilyFontList对象都有一个“Name”属性,它与DataText和DataValue字段绑定。

第二个下拉列表框根本没有属性,只是一个字符串数组。我应该在这两个字段中放置什么才能使它工作?


也许是一个愚蠢的问题 - 但是 - colorName数组中有任何值吗? - Fischermaen
当然有,AVD已经回答了我的问题。 - yahya kh
1个回答

6

是的,您可以绑定一个数组,但需要删除DataTextFieldDataValueField属性。

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

1
我真的感觉很愚蠢。非常感谢您的答案,它起作用了。 - yahya kh
2
@yahyakh - 这里没有任何愚蠢的地方。当明显需要帮助时,您永远不应该犹豫寻求帮助。 - KV Prajapati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接