Привязка массива строки к DropDownList? - PullRequest
6 голосов
/ 07 декабря 2011

Вопрос, который я никогда не решал.Я проиллюстрирую два примера кода, в которых один работает, а другой нет:

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 прекрасно заполняется без каких-либо ошибок, потому что у каждого объекта oFamilyFontList есть свойство Name, которое связываетс полями DataText и DataValue.

У второго вообще нет свойств, и это просто массив строк.Что, возможно, я могу поместить в оба поля, чтобы оно работало?

1 Ответ

6 голосов
/ 07 декабря 2011

Да, вы можете связать массив, но вы должны удалить DataTextField и DataValueField атрибуты

<asp:DropDownList 
        ID="DropDownList_FontColor"
        runat="server">
</asp:DropDownList>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...