2010-07-07 3 views
1
selectCourseList.SelectedIndex=Convert.ToInt32(selectCourseList.Items.FindByValue(newStudentCourseId)); 

даяния следующей ошибки Невозможно привести объект типа «System.Web.UI.WebControls.ListItem» к типу «System.IConvertible».asp.net проблема

я не понимаю, Что wwrong с этим

+0

На самом деле, я не понимаю, что вы хотите сделать? быть конкретным PLS –

+0

У меня есть недавно добавленные ученики courseId «newStudentCourseId» в строковой форме, и у меня есть список, в котором я хочу установить выбранный индекс, конечно, новым ученикам добавлен курс – NoviceToDotNet

ответ

7
selectCourseList.Items.FindByValue(newStudentCourseId) 

выше собирается дать вам ListItem назад, так что вы не можете использовать Convert.ToInt32, а затем установить индекс, как вы описываете.

Вместо этого попробуйте:

selectCourseList.Items.FindByValue(newStudentCourseId).Selected = true; 
0

selectCourseList.Items.FindByValue (newStudentCourseId) возвращает некий объект, который не поддерживает System.IConvertible интерфейс - так что вызов Convert.ToInt32 не удается

Какие объекты находятся в selectCourseList.Items?

0

Вы не можете преобразовать ListItem к междунар. Попытка:

selectCourseList.SelectedIndex=selectCourseList.Items.IndexOf(selectCourseList.Items.FindByValue(newStudentCourseId)); 
+0

oh отлично это также работает спасибо david – NoviceToDotNet

0

Вы уверены, что значение элемента является типом типа? Вы сюры, что метод FindByValue не возвращает нуль для параметра newStudentCourseId

+0

find by value talkes string parameter, поэтому я преобразовал его в тип string wile, я получал его тип int ... но я переконвертировал его в тип int с помощью convertToInt32, но безрезультатно, что неправильно, я не получаю, но у меня есть решение для моего проблема, видя выше решение, но может указать, что не так в этом – NoviceToDotNet

0

Я думаю, что что-то подобное (не проверено):

selectCourseList.SelectedIndex=-1; 
selectCourseList.Items.FindByValue(newStudentCourseId).Selected = true; 

где newStudentCourseId является строка representig в ItemValue вашего DropDown.

+0

да верно это сработало – NoviceToDotNet

+0

найти по значению параметр talkes string, поэтому я преобразовал его в тип строки wile, я получал его тип int ... но я преобразовал его в тип int используя convertToInt32, но безрезультатно, что неправильно, я не получаю, но у меня есть решение моей проблемы, видя выше решение, но могу сказать что не так в этом – NoviceToDotNet

0

Наверняка вам нужно;

selectCourseList.SelectedIndex=selectCourseList.IndexOf(selectCourseList.Items.FindByValue(newStudentCourseId)); 
Смежные вопросы