Привязка DropDownList к подробному представлению без источника данных - PullRequest
3 голосов
/ 23 февраля 2012

Я пытаюсь привязать раскрывающийся список к представлению сведений, но получаю сообщение об ошибке в поле идентификатора раскрывающегося списка:

<asp:TemplateField HeaderText="Approval">
                <ItemTemplate>
                    <asp:DropDownList ID="Approved" runat="server" DataValueField="Approved" SelectedValue='<%#Bind("Approved") %>'>
                        <asp:ListItem Text="Approved" Value="Approved" />
                        <asp:ListItem Text="Denied" Value="Denied"/>

                    </asp:DropDownList>
                </ItemTemplate>                   
 </asp:TemplateField>

Сообщение об ошибке выглядит следующим образом:

«Одобрено» имеет значение SelectedValue, которое недопустимо, поскольку его нет в списке элементов. Имя параметра: значение

Как правильно прикрепить значение выпадающего списка к моему объекту, чтобы его можно было правильно создать в базе данных? Большинство моих запросов постоянно говорят мне, как связать выпадающий список с источником данных объекта, но это не то, что мне нужно делать. Это основной выпадающий список из 2 пунктов, который никогда не изменится.

1 Ответ

2 голосов
/ 23 февраля 2012

Эта ошибка возникает из-за того, что вы связываете SelectedValue из DropDownList с полем «Одобрено» вашего источника данных DetailsView, но значение, которое он пытается присвоить, не одно из двух, которые у вас есть в списке («Одобрено» и «Отклонено»).

Я вижу, вы установили DataValueField="Approved". Вы устанавливаете источник данных Dropdown в коде позади? Поскольку это не собирается устанавливать для ListItems значения из столбца «Утверждено» в источнике данных DetailsView, он устанавливает для них любой источник данных для раскрывающегося списка.

В зависимости от вашей логики, вот некоторые возможности:

  • Убедитесь, что ваши статические элементы соответствуют возможным элементам, возвращенным в поле «Одобрено» DetailsView. Или
  • Свяжите DropDownList с набором данных, который включает все возможные значения из «Одобрено», и полностью удалите ваши статические элементы. Или,
  • Установите AppendDataBoundItems="True" в своем DropDown и имейте статические и привязанные к данным элементы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...