Помощь: невозможно привести объект Dropdownllist к IConvertible - PullRequest
1 голос
/ 12 апреля 2009

У меня проблемы с получением значений раскрывающегося списка из функции FIndControl.

Вот код, который я пытаюсь использовать:

currentCategoryID = Convert.ToInt32(((DropDownList)r.FindControl("DDLCategories")));

Значением currentCategoryID в базе данных является "int"

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

Невозможно привести объект типа 'System.Web.UI.WebControls.DropDownList' к типу 'System.IConvertible'.

Используя тот же код, мне пришлось удалить значения текстового поля, используя этот код, и все в порядке

currentAddress = ((TextBox)r.FindControl("txtAddress")).Text;

Может ли кто-нибудь указать мне правильное направление, как правильно написать этот код

Ответы [ 2 ]

3 голосов
/ 12 апреля 2009

Вы пытаетесь преобразовать сам DropDownList в Int32, а не в его значение. Вы должны углубиться в элемент управления, чтобы получить значение перед его преобразованием. Например,

currentCategoryID = Convert.ToInt32(((DropDownList)r.FindControl("DDLCategories")).SelectedItem.Value);
1 голос
/ 12 апреля 2009

Ваш первый фрагмент пытается преобразовать сам элемент управления DropDownList в int. Что вам нужно сделать, это извлечь выбранное значение или выбранный элемент или что-то еще, в зависимости от того, какую среду пользовательского интерфейса вы используете:

object selectedId = ((DropDownList)(r.FindControl("...")).SelectedValue;
int currentCategoryId = Convert.ToInt32(selectedId);
...