Помогите разобратся checklistBox
От: Beker Россия  
Дата: 28.07.03 16:50
Оценка:
Дело в том что мне надо предоставить пользователю выбор из большего
списка (который хранится в таблице соответствено в базе на сервере)
в таком формате
------------------------------
| id | описания |
------------------------------
я загружаю в checklistBox все описания, пользователь выбирает штук 30 записей
а как мне занести их id (идентификационый номер описания)
не делать же по каждому выброному описанию запрос id на сервер тем более запрос по описанию это вообще как-то неправильно
можно ли хранить как-нибудь в checklistBox id так чтоб незаметно для пользователя

З.Ы. Задачка классическая, может кто поделется опытом
... << RSDN@Home 1.1 alpha 1 >>

24.12.03 11:22: Перенесено модератором из '.NET' — AVK
Все что есть хорошего, либо незаконно, либо аморально, либо ведет к ожирению.
Re: Помогите разобратся checklistBox
От: Воронков Василий Россия  
Дата: 28.07.03 16:55
Оценка: 3 (1)
Здравствуйте, Beker, Вы писали:

B>Дело в том что мне надо предоставить пользователю выбор из большего

B>списка (который хранится в таблице соответствено в базе на сервере)
B>в таком формате
B>------------------------------
B>| id | описания |
B>------------------------------
B>я загружаю в checklistBox все описания, пользователь выбирает штук 30 записей
B>а как мне занести их id (идентификационый номер описания)
B>не делать же по каждому выброному описанию запрос id на сервер тем более запрос по описанию это вообще как-то неправильно
B>можно ли хранить как-нибудь в checklistBox id так чтоб незаметно для пользователя

B>З.Ы. Задачка классическая, может кто поделется опытом


Имхо самым лучшим решением будет отказаться в принципе от использования checklistbox, а использовать treeView. В триВью отдельная нода представлена в виде объекта TreeNode и обладает свойством object Tag, в котором можно хранить что угодно. Более того, триВью поддерживает стиль отображения с чекБоксами (св-во bool CheckBoxes). Кроме того есть св-ва типа bool ShowLines, ShowPlusMinus, установив которые, можно достигнуть практически полного сходства триВью с checkedlistBox.
... << RSDN@Home 1.1 beta 1 >>
Re: Помогите разобратся checklistBox
От: fist Россия  
Дата: 28.07.03 17:55
Оценка:
Здравствуйте, Beker, Вы писали:

B>Дело в том что мне надо предоставить пользователю выбор из большего

B>списка (который хранится в таблице соответствено в базе на сервере)
B>в таком формате
B>------------------------------
B>| id | описания |
B>------------------------------
B>я загружаю в checklistBox все описания, пользователь выбирает штук 30 записей
B>а как мне занести их id (идентификационый номер описания)
B>не делать же по каждому выброному описанию запрос id на сервер тем более запрос по описанию это вообще как-то неправильно
B>можно ли хранить как-нибудь в checklistBox id так чтоб незаметно для пользователя

B>З.Ы. Задачка классическая, может кто поделется опытом


Конечно, возможно.
Ведь checklistBox в качестве Items содержит Object.
А отображает в списке то, что возвращает функция ToString()
То есть нужно всего лишь написать класс, в котором будет переопределена функция ToString()
public override string ToString()
{
return description;
}
Которая будет возвращать описание.
В данный класс можно добавить необходимые для хранения переменные.
И добавлять уже объекты этого класса.
Re[2]: Помогите разобратся checklistBox
От: alkash  
Дата: 29.07.03 05:06
Оценка:
Здравствуйте, fist, Вы писали:

F>Конечно, возможно.

F>Ведь checklistBox в качестве Items содержит Object.
F>А отображает в списке то, что возвращает функция ToString()
F>То есть нужно всего лишь написать класс, в котором будет переопределена функция ToString()
F>public override string ToString()
F>{
F> return description;
F>}
F>Которая будет возвращать описание.
F>В данный класс можно добавить необходимые для хранения переменные.
F>И добавлять уже объекты этого класса.

Только не не обязательно переопределять ToString, просто надо глянуть свойство DisplayMember у CheckedListBox/
Re: Помогите разобратся checklistBox
От: Shulapov Россия  
Дата: 29.07.03 06:06
Оценка:
Здравствуйте, Beker, Вы писали:

B>Дело в том что мне надо предоставить пользователю выбор из большего

B>списка (который хранится в таблице соответствено в базе на сервере)
B>в таком формате
B>------------------------------
B>| id | описания |
B>------------------------------
B>я загружаю в checklistBox все описания, пользователь выбирает штук 30 записей
B>а как мне занести их id (идентификационый номер описания)
B>не делать же по каждому выброному описанию запрос id на сервер тем более запрос по описанию это вообще как-то неправильно
B>можно ли хранить как-нибудь в checklistBox id так чтоб незаметно для пользователя

B>З.Ы. Задачка классическая, может кто поделется опытом


Так как это у тебя таблица, то можно сделать так:


CheckedListBox list = ... 
DataTable dt = ...загрузка таблицы

list.DataSource = dt;
list.DisplayMember = "Описания";
list.ValueMember = "id";



далее проверка отмеченных пунктов


foreach (DataRow dr in list.CheckedItems)
{
   MessageBox.Show( dr[list.ValueMember].ToString() );
}




вроде так...
Одинаковые ошибки не обязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.