Привязать SelectedValue ASP.net DropDownList к пользовательскому объекту - PullRequest
2 голосов
/ 15 февраля 2010

В настоящее время у меня есть DropDownList внутри FormView, привязанный к базе данных ObjectDataSource. Это DropDownList, который имеет свой собственный источник данных, который возвращает список отделов:

<asp:DropDownList ID="DepartmentsList" DataSourceID="DepartmentsListDataSource" DataTextField="Name" SelectedValue='<%# Bind("Department") %>' runat="server" />

В источнике данных FormView свойство Department определяется как:

public Department Department { get; set; }

В этой ситуации я получаю следующее исключение:

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

Логически я получаю это исключение, потому что я не установил DataValueField в DropDownList. Вопрос в том, каким должно быть значение DataValueField, если я хочу привязать данные к выбранному объекту (отдела) обратно в источник данных FormViews?

Спасибо.

Ответы [ 2 ]

1 голос
/ 15 февраля 2010

Я не знаю, возможно ли связать весь объект как SelectedValue.
Что вы можете сделать, это привязать уникальный идентификатор (например, идентификатор) к DataValueField и получить ваш объект по его идентификатору.
Другое ( очень грязное ) решение состоит в том, чтобы поместить все соответствующие свойства (разделенные, например, ";") в DataValueField, и создать ваш объект с этими значениями ... Но, как уже было сказано, это действительно грязно! ; -)

0 голосов
/ 15 февраля 2010

Можно присвоить объект DataValueField, но он не будет "работать", так как ваш объект будет приведен к строке. Это означает, что у вас будет одинаковое строковое значение для всех ваших связанных параметров, это может быть тип вашего объекта или просто объект. Подход может быть таким, как утверждал Питер Ниджс, разделяя символом соответствующие свойства объекта, но, как он сказал, это очень грязно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...