Выпадающий список в подробностях, не перечисляющий элементы

Привет всем

У меня есть подробный вид, где есть 3 связанных поля и поле шаблона.

В поле шаблона есть DropDownList, который я подключил к AccessDataSource.

Но когда я запускаю, в раскрывающемся списке есть только "System.Data.DataRowView" в качестве элементов.

Я хочу, чтобы элементы из БД были перечислены в DropDownList

Это мой код

asp:TemplateField HeaderText="State/Province" SortExpression="State/Province">
                            <EditItemTemplate>
                                <asp:DropDownList ID="ddlState" runat="server" DataSourceID="AccessDataSource1" 
                                    onselectedindexchanged="DropDownList1_SelectedIndexChanged">
                                </asp:DropDownList>
                                <asp:AccessDataSource ID="AccessDataSource1" runat="server" 
                                    DataFile="~/App_Data/db1.mdb" 
                                    SelectCommand="SELECT [State/Province_name] FROM [State/Province_List ]">
                                </asp:AccessDataSource>
                            </EditItemTemplate>
                        </asp:TemplateField>

Должен ли я добавить событие DataBinding или DataBound для DropDownList?? сделать его идеальным?

Помогите мне в этом вопросе

Спасибо, Арджун


person Arjun Babu    schedule 15.02.2012    source источник


Ответы (1)


Определите поле для использования в раскрывающемся списке

<asp:DropDownList ID="ddlState" runat="server"
   DataSourceID="AccessDataSource1"
   DataTextField="State/Province_name"
   DataValueField="State/Province_name"
   OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>

Если у вас возникли проблемы с этим нестандартным именем столбца, попробуйте использовать псевдоним

SELECT [State/Province_name] AS StateProv FROM [State/Province_List ]

(Пробел в [State/Province_List ] подходит?)

Тогда используйте этот

<asp:DropDownList ID="ddlState" runat="server"
   DataSourceID="AccessDataSource1"
   DataTextField="StateProv"
   DataValueField="StateProv"
   OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
person Olivier Jacot-Descombes    schedule 15.02.2012
comment
Здравствуйте, Оливье, спасибо за ответ. Я пробовал. Он выдает эту ошибку DataBinding: «System.Data.DataRowView» не содержит свойства с именем «State/Province_name». - person Arjun Babu; 15.02.2012
comment
Должен ли я добавить событие DataBinding или DataBound для DropDownList?? - person Arjun Babu; 15.02.2012
comment
Я нашел небольшое руководство здесь. Вы удалили пробел из [State/Province_List ]? Я с трудом могу себе представить, что имя таблицы заканчивается пробелом. - person Olivier Jacot-Descombes; 15.02.2012
comment
У меня есть пробел... но я все еще получаю System.data.datarowview в раскрывающемся списке даже после предоставления данных и текстовых полей - person Arjun Babu; 16.02.2012
comment
Это должно выглядеть так [State/Province_List]. Я предлагаю вам сделать тест и скопировать запрос в доступ и выполнить его там. Вы увидите, выполняется ли запрос и какие имена столбцов он возвращает. - person Olivier Jacot-Descombes; 16.02.2012
comment
давайте продолжим это обсуждение в чате - person Arjun Babu; 16.02.2012