Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница:

 

  Вопрос: Ленточная форма с combo Добавлено: 23.05.03 14:28  

Автор вопроса:  Grigory
Добрый день!
 
Я хочу сымитировать ленточную форму Access в VB. Насколько я понимаю, возможно использовать 2 варианта:
 
1) Data repeater + собственный контрол
2) DataGrid
 
Но и с тем, и с другим возникают проблемы. Дело в том, что одно из полей моей таблицы содержит ключи, а пользователю, естественно, нужно показывать соответствующие им значения. Кроме того, пользователь должен иметь возможность редактировать содержимое этого поля, выбирая нужный вариант из списка. То есть нужен combobox.
 
Вот тут и появляются трудности.  
 
Первый вариант:
Я создаю контрол с datacombobox. Задаю Property Let/Get для каждого отображамого поля и Property Set для передачи в контрол recordset'а-списка вариантов для комбо.
Задаю мой контрол в свойстве RepeatedControl Datarepeater'а. Привязываю свойства контрола к полям recordset'а в datasource datarepeater'а. Но когда я открываю форму, текст в combo виден только в активной записи, а в остальных комбо пуст. Если я перехожу на другую запись, то в комбо этой записи появляется текст (правильный), но исчезает в записи, которая была активной до этого. Что делать - не понятно...
 
Второй вариант:  
Так как в DataGrid вставить комбо нельзя, я использую кнопку в поле для отображения скрытого листбокса с вариантами.  
Тут все просто. Но вот как отображать не ключ, а соответствующий ему текст, непонятно. Я пробовал использовать Left Join для того, чтобы в рекордсете иметь и текст, и его ключ. Соответственно, в datagrid'е я скрывал поле ключа, оставляя видимым поле с текстом. По клику на списке я обновлял оба поля.
Но в этом случае не получается обновить запись, программа ругается, что не может внести изменения из-за повторяющихся значений в индексе, ключевых полях или связях. Если не привязывать поле текста к рекордсету, то все работает. Пробовал после отображения данных из рекордсета отвязать от него поле  - все равно не работает. Что делать? Можно ли привязывать к рекордсету только поле ключа, а пользователю показывать текст???
 
Спасибо.
Григорий

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам