2014-11-28 3 views
-3

Я хочу объединить выбранное значение CheckedListBox в одну строку, разделенную запятыми, и сохранить ее в базе данных, но этот код дает мне ошибка:Невозможно лишить CheckBoxList.Items для ListItem - Не удалось найти или использовать пространство имен

var items = from member in checkedListBox1.Items.Cast<ListItem>() 
      where member.Selected == true 
      select member.Value; 

string mylist = String.Join(",", items); 

ошибка:

The type or namespace name 'ListItem' could not be found (are you missing a using directive or an assembly reference?)

+1

Какая ошибка в точности? –

+0

Не удалось найти имя типа или пространства имен ListItem (вам не хватает директивы using или ссылки на сборку?) – user3355995

ответ

1

Вы смесительные платформы. CheckedListBox - это элемент управления WinForms, но ListItem - это веб-элемент управления.

Именно поэтому он показывает эту ошибку - вы не ссылаетесь на System.Web, и у вас нет using System.Web.UI.WebControls; в верхней части файла. И даже если бы у вас было все это, все равно было бы неправильно.


Контроль CheckedListBox уже отслеживает проверяемых и выбранных элементов для вас.

Чтобы извлечь выбранные элементы, используйте CheckedItems и бросил коллекцию обратно к типу данных, населенной его первоначально:

var checkedItems = checkedListBox1.CheckedItems.Cast<YourClass>(); 

Если вы на самом деле хотели выбранные элементы (вероятно, нет), используйте SelectedItems вместо этого:

var selectedItems = checkedListBox1.SelectedItems.Cast<YourClass>(); 

После отливки детали правильно, последняя часть у вас есть должна работать нормально (при условии, что это набор строк, или, если вы используете свой собственный класс, что он перекрывает ToString()):

string myFlattenedList = String.Join(",", checkedItems); 
+1

Вместо 'checkedListBox1.SelectedItems.Cast ();', это должно быть 'checkedListBox1.CheckedItems.Cast (); '. Я верю. –

+0

@YograjGupta Это имеет смысл. Я слишком буквально переводил часть 'member.Selected == true' в OP. Я уверен, что он захочет использовать отмеченные элементы, а не выбранные элементы. Благодарю. –