|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
Привязка к представлению09.11.2013, 00:47. Показов 1901. Ответов 11
Метки нет (Все метки)
Здравствуйте. Вопрос такой: как реализовать привязку ComboBox к представлению?
У меня есть главная форма, отображающая представления в гриде (именно представления я выбрал, чтобы вместо кодов из родительских таблиц отображались соответствующие поля). При клике по строке вызывается форма редактирования, в которую я передаю текущий DataRow. В этой форме я в зависимости от типа редактируемой записи создаю контролы, в том числе, ComboBox-ы для полей, связанных с другими таблицами. И вроде как даже правильно заполняю этот самый Combobox значениями... Хотя наверно нет, на этом месте я заступорился. Привязать к обычной таблице к полю с внешним ключом не составило бы труда, а вот в представлении у меня есть только неключевое поле родительской таблицы. Хотелось бы сделать такую привязку Combobox: текст выбранного элемента к полю из представления (строковому). Реально ли так сделать? Или мне нужно как-то реорганизовать работу с данными в программе? Заранее спасибо.
0
|
|
| 09.11.2013, 00:47 | |
|
Ответы с готовыми решениями:
11
Поиск по представлению Что это жесткая привязка к точке входа, физическое смещение в файле, окрестность точки входа в файл, привязка? Путь к частичному представлению |
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||
| 09.11.2013, 06:39 | ||
|
0
|
||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
||
| 09.11.2013, 12:14 [ТС] | ||
|
0
|
||
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||
| 09.11.2013, 19:09 | ||
|
У вас в реальной таблице хранится не строковое поле, а внешний ключ. И вам нужно, чтобы в результате редактирования у вас имзменился именно внешний ключ, а не его строковое представление. Все, что вы описали в первом посте, очень абстрактно. Допустим, я до конца не понял, что вы имеете в виду под термином "Представление". Это объект DataView в C#? Или это VIEW в СУБД? Или это что то еще? Не ясно, также, как у вас происходит процедура вставки и обновления данных в БД, если вы предпочитаете работать с представления, в которых нет внешний ключей, а есть только их текстовое представление. Таких нюансов масса, поэтому что то вам предлагать бессмыслено. Могу вам только сказать, что тот путь, который выбрали вы, может оказаться намного геморойне, нежели ручное создание колонок для 10-ка гридов.
0
|
||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 09.11.2013, 22:16 [ТС] | |
|
kodv, простите за неточность. Просто первый раз столкнулся с ADO.net, не представляю, как грамотно организовать просмотр и редактирование БД. Был бы признателен за консультацию, с чего начать и как это красиво сделать. Вот какие задачи мне нужно реализовать:
- просмотр всех таблиц БД, как родительских, так и дочерних, причем в дочерних вместо внешних кодов должны отображаться осмысленные поля - не делать отдельный грид для каждой таблицы, отображать разные таблицы в одном гриде, дабы программа была компактной - должна быть форма редактирования, в которой можно было бы выбирать комбобоксами значения из других таблиц, причем форма тоже должна быть одна и наверное контролы должны добавляться динамически, в зависимости от типа редактируемой записи. Это вот пожелания, а как это грамотно реализовать я и хотел бы услышать.
0
|
|
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
| 10.11.2013, 08:08 | |
|
Как я понял, у вас заранее выгружаются все таблицы, в таком случае вам лучше прописать все отношения (DataRelation) в своем DataSet (У вас же все таблицы в DataSet хранятся, а не по отдельности?). Подробности создания отношений по ссылке. Заодно можно там и про другие стороны ADO.NET цепануть. Когда у вас будет DataSet, состоящий из связанных таблиц, вы сможете создавать комбобоксы (как в гриде, таки на форме), подставляя туда нужный источник данных для лукапа.
Возник еще в голове вариант возрвращать в представлении как строкове поле так и ключ. Но этот вариант скорее всего тоже заведет в тупик. Потому что нужно будет писать универсальный алгоритм, определяющий, какие колонки в гриде скрыть. И нужно быдет каким то образом в момент создания ComboBox определять, на какую все таки таблицу ссылается внешний ключ.
1
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
||
| 10.11.2013, 11:54 [ТС] | ||
|
А при создании DataRelation-ов придется же потом все равно вручную пересоздавать все столбцы грида, нет? Один грид на много таблиц, нужно будет удалять столбец внешнего ключа и создавать новый столбец с комбобоксом и привязкой по DataRelation для каждого внешнего ключа. Или же нет?
0
|
||
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|||
| 10.11.2013, 17:22 | |||
|
0
|
|||
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
||||||
| 10.11.2013, 23:55 [ТС] | ||||||
|
Хм, вроде понял, а как начал делать - не получается. Данные не отображаются. Скрин и код метода прилагаются. Поглядите пожалуйста, где накосячил.
0
|
||||||
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
| 13.11.2013, 18:08 | |
|
alex.gorbach, Извиняюсь, что долго не заходил на форум. Если у вас не отображаются только комбо боксы, то это из-за того, что вы не инициализируете свойство DataPropertyName (не только в текстовом поле оно нужно). Если не отображается текст, значит нужно отладчиком проогонять, смотреть...
0
|
|
|
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 35
|
|
| 14.11.2013, 22:19 [ТС] | |
|
kodv, спасибо за помощь, я уже разобрался, сделал все абсолютно по-другому. Правда, возник теперь такой вопрос: передаю в форму редактирования/добавления DataRow, он либо пустой, либо нет. Если добавляю запись - заполняю DataRow этот, все его значения, кроме поля Код, так как оно identity на сервере и при добавлении записи INSERT-ом я его не указываю, оно заполняется автоматически. Так вот, проблема в том, что когда пытаюсь сделать Table.Rows.Add(dataRow), вылетает исключение, мол, в поле Код запрещены NULL значения.
0
|
|
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||
| 15.11.2013, 06:57 | ||
|
0
|
||
| 15.11.2013, 06:57 | |
|
Помогаю со студенческими работами здесь
12
Вопрос По Внедренному Представлению
Построить кривую по заданному параметрическому представлению:
Как подключить сторонний скрипт к представлению Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|