Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
Всем привет, и хорошего дня. Давеча, я задавал вопрос про ADo.net и asp.net. Приступил к работе, осилил 2 учебника, и дело пошло, но опять таки натолкнулся на проблему заполнения DropDownList'ов в InsertItemTamplate объекта ListView. Перерыв тонну инфы в гугле уже весь измучался и понял, что пора написать сюда. Проблема в следующем, есть код события ListView1_ItemCreated, который заполняет dropdownlist'ы через sqldatareader: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Он падает с ошибкой "Недопустимая попытка вызвать FieldCount при закрытом устройстве чтения." Если я убираю, строку con.Close(), то все компилируется и заполняется как мне надо, НО подключение остается не закрытым! Как это обойти? Пробовал следующее: 1) через DataSet и SqlDataAdapter: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Беда с тем, что после компиляции он дублирует записи в DropDownList'ы (т. е. 1,2,3,4,1,2,3,4) а мне надо просто чтобы было 1,2,3,4. Получается он по 2 раза его заполняет и ставит пустое значение в начало. Тоже не понимаю почему так происходит? 2) Если ставлю свойство DropDownList AppendDataBoundItems="false", то он не вставляет пустую строку в начало списка :( а мне надо чтобы она обязательно вставлялась, потому что при добавлении новой записи в базу некоторые поля могут быть пустыми, а выбираются они из dropdownlist'ов. 3) Грешу на событие ItemCreated, или надо через какое то другое событие ListView заполнять данные DropdownList'ы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:19 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:35 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4a, ddlForm.Items.Clear(); //код заполнения ddlForm.Items.Insert(0, new ListItem("<-выберите ответ->", "0")); Вообще доступ и чтение данных из базы данных надо делать в другом классе а здесь только байндить данные Должен быть 1. Класс для доступа и чтения данных из базы 2. При построении Списка уже заполнять DropDownList уже загруженными данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 18:44 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4a, 3) Грешу на событие ItemCreated, или надо через какое то другое событие ListView заполнять данные DropdownList'ы? Да другое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 18:45 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708rpe4a, ddlForm.Items.Clear(); //код заполнения ddlForm.Items.Insert(0, new ListItem("<-выберите ответ->", "0")); Вроде бы у меня стоит у Listview Appentdatabounditems = "true" - это свойство ведь обнуляет объект перед заполнением? VIT2708Вообще доступ и чтение данных из базы данных надо делать в другом классе а здесь только байндить данные Должен быть 1. Класс для доступа и чтения данных из базы 2. При построении Списка уже заполнять DropDownList уже загруженными данными. Полностью согласен, но пока руки не дошли, да и опыта маловато... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 08:36 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
Кавказ-сила http://msdn.microsoft.com/en-us/library/905keexk.aspx А что вам не нравится в моей реализации(да возможно код не очень красив, но это я для быстроты делаю), я же написал, что пробую и через sqldatareader и через sqldataadapter? и я же написал, что знаю, как они работают, проблема в том что либо подключение он остается не закрытым и все заполняется как надо, либо появляются с sqldataadapter дублирующие записи в dropdownlist'ах и как от них избавится я не знаю... скорей всего надо событие другое использовать, но какое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 09:13 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708rpe4a, Да другое а поточнее, пробовал через событие Listview Itemdatabound, ноль реакции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 09:14 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
Допустим на 1 странице у меня есть кнопка перехода на другую страницу, которая должна добавлять новую сущность в таблицу базы данных, то есть как я понимаю автоматом вызывается событие Listview_insertingitem()? И появляются поля и Dropdownlist'ы которые я забил в <InsertItemTemplate>, далее по кнопке добавить происходит добавление записи в таблицу базы данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 09:25 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4aVIT2708rpe4a, Да другое а поточнее, пробовал через событие Listview Itemdatabound, ноль реакции... ASPX Код: plaintext 1. 2. 3. 4. 5. 6. CS Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 09:54 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708, у вас стоит заполнение в <Itemtamplate>, а у меня они заполняются в <InsertItemtemplate>, <Itemtamplate> - я вообще на данной странице не использую :( . Конечно попробовал ваш код, он выдал ошибку: Код: c# 1. Поясните, где возникает или когда событие ItemCreated? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:26 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
Причем данное задача реализована с помощью sqldatasource, то есть программно это тоже как то можно настроить только как :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:30 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4a, Код: c# 1. 2. 3. 4. замените на Код: c# 1. 2. 3. 4. Create возникает при создании новой строки, а для построения списка она не подходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:32 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4aПричем данное задача реализована с помощью sqldatasource, то есть программно это тоже как то можно настроить только как :)) sqldatasource это источник, а программно я вам привел функцию заполнения DDL А как у вас это все должно выглядеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:35 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708 Код: c# 1. 2. 3. 4. Хитро, но к сожалению так не получится, т.к. из ListViewItemType можно выбрать только DataItem, EmptyItem, InsertItem. Я вообще пробую так: Код: c# 1. VIT2708Create возникает при создании новой строки, а для построения списка она не подходит Вот буржуи проклятые на их форуме ведь вычитал про это событие, хотя по идее оно заполняет, только делает не нужный дубликат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:44 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708, желательно чтобы все кодом было, вообще не хочу пользоваться этими sqldatasource и objectdatasource :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:45 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
Пока реакции 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:45 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4a, Выберите DataItem, я редко работаю с LV больше с Repeater поетому есть маленькие не точности 1. Если вы хотите добавить новую запись то как по мне нужно создать отдельную форму и там добавлять. 2. В списке я бы только редактировал существующие записи Покажите пример как это должно выглядеть, а то так трудновато понять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:51 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4aVIT2708, желательно чтобы все кодом было, вообще не хочу пользоваться этими sqldatasource и objectdatasource :)) Сейчас попробую вам написать маленький пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 11:53 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4a, Код: c# 1. 2. 3. 4. 5. Код: c# 1. 2. 3. Для теста на странице в CS Код: c# 1. 2. 3. 4. 5. 6. 7. 8. ASPX Код: plaintext 1. 2. 3. 4. 5. 6. \в вашем случае это получается сложноватый пример Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. В вашем случае вам надо заполнить Выпадающий список, если я правильно понял то он будет находится в каждой строке списка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 12:11 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708, опять же хочу уточнить ListViewItemType.DataItem, он будет заполнять dropdownlist'ы которые находятся у ListView <ItemTemplate> (Которого у меня на странице в принципе нету, потому что при переходе на эту страницу должно сразу вываливаться окно для добавление новой записи с TextBox'ами и DropDownList'ами), в данном случае это для меня не годится, а мне надо чтобы он заполнял DropDownlist'ы которые находятся в ListView <InsertItemTemplate>, тогда надо использовать свойство ListViewItemType.InsertItem. Но из данного события не происходит привязки данных к DropDownList'ам, реакции 0. За пример спасибо огромное, может еще кому пригодится. А вот можно же это оформить через Repeate по идее, я просто им не разу не пользовался, это не принципиально через какой элемент я буду добавлять данную запись в базу, главное чтобы это работало :))? Блин хотел картинки прикрутить, но не могу разобраться как это сделать :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 12:33 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4a, Не видя как вы хотите сделать я не могу точно вам подсказать Внизу под окном редактирования есть кнопка "Выберите файл" вот так и прикрепите картинку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 12:37 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
rpe4aVIT2708, опять же хочу уточнить ListViewItemType.DataItem, он будет заполнять dropdownlist'ы которые находятся у ListView <ItemTemplate> (Которого у меня на странице в принципе нету, потому что при переходе на эту страницу должно сразу вываливаться окно для добавление новой записи с TextBox'ами и DropDownList'ами), в данном случае это для меня не годится, а мне надо чтобы он заполнял DropDownlist'ы которые находятся в ListView <InsertItemTemplate>, тогда надо использовать свойство ListViewItemType.InsertItem. Но из данного события не происходит привязки данных к DropDownList'ам, реакции 0. За пример спасибо огромное, может еще кому пригодится. А вот можно же это оформить через Repeate по идее, я просто им не разу не пользовался, это не принципиально через какой элемент я буду добавлять данную запись в базу, главное чтобы это работало :))? Блин хотел картинки прикрутить, но не могу разобраться как это сделать :( Зачем для добавления новой записи вы "запихиваете" DropDownList внутрь ListView? вынесите его на веб страницу. Если проект тестовый и там нет ничего секретного то можете выслать мне на e-mail я вам его переделаю как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 12:42 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708, с sqldatasource(а они весят на каждом DDL + один весит на LV с ХП на добавление записи) работает вот так, как я и хочу: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 12:43 |
|
||
|
Беда с DropDownList, Sqldatareader и cобытием ListView_ItemCreated?
|
|||
|---|---|---|---|
|
#18+
VIT2708, теперь из под кода, если AppendDataBound="true" и используем событие ListView1_ItemCreated: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Получаем следующее: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2014, 12:47 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=77&tid=1357490]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
5ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 402ms |

| 0 / 0 |
