2009-09-07 2 views
0

Учитывая мою таблицу основной таблицы для связывания навигатора:Почему мой comboBox пуст после выбора значения?

CREATE TABLE [dbo].[asset](
[assetID] [int] IDENTITY(1,1) primary key, 
[assetTag] [varchar](15) NULL, 
[assetModelId] [int] NOT NULL, 
[employeeId] [int] NULL references employee(employeeid), 
[LocationId] [int] NULL, 
[purchasedDate] [smalldatetime] NULL, 
[purchasedby] [int] NULL references employee(employeeid), 
[depreciated] [tinyint] NULL, 
[addedDate] [smalldatetime] NULL CONSTRAINT, 
[addedBy] [int] NULL references employee(employeeid), 
[disposalDate] [smalldatetime] NULL 

Вот BindingNavigator связывания:

bindingNavigator1.BindingSource = _formData.BsAssets; // binding source for the asset table(linq-to-sql dbml) 

Вот связывании код COMBOBOX:

 _BsAsset.DataSource = _formData.GPS.dc.assets; 
     _BsUser.DataSource = _formData.GPS.dc.employees; 
     cmbUser.DisplayMember = "userName"; 
     cmbUser.ValueMember = "employeeId"; 
     cmbUser.DataSource = _BsUser; 

     cmbUser.DataBindings.Add("SelectedValue", _BsAsset, "employeeId"); 

Каждый раз, когда я выбираю значение в поле со списком остается ... до тех пор, пока элемент управления не потеряет фокус, а затем вернет его к пустому (нулевому) значению.

В поле со списком установлен режим DropDown, чтобы пользователи могли добавлять новые значения в эту таблицу непосредственно из этого comboBox. Если я набираю значение, значение которого остается (я еще не добавил код для реализации этой функции).

Я использую тот же код, чтобы привязывать комбинированные поля к двум другим значениям, которые ссылаются на таблицу сотрудников с тем же результатом. Почему он продолжает устанавливать значение null после того, как я что-то выберу?

ответ

0

Похоже, что выпадающий элемент управления перезагружается каждый раз, когда его потеряет фокус. Отправляется ли страница назад, когда она теряет фокус элемента управления?

+0

Извините, возможно, я должен был упомянуть о его окнах, а не asp – Maslow

0

Свойство DisplayMember имеет значение userName, которого нет в вашем источнике данных.

+0

my dataSource - таблица сотрудников, которая имеет свойство userName. Также я вижу список несохранений в поле combox, даже когда я прокомментирую строку DataBindings.Add. – Maslow

0

Я нашел интересную вещь. Когда я перешел к свойствам в поле со списком, затем в DataBindings/Advanced и удалил запись «Текст», вдруг комбо-окно перестало гасить, когда оно потеряло фокус. Возможно стоит попробовать.

0

У меня был этот опыт при привязке combobox к типу с нулевым значением. Я должен был включить параметр formattingEnabled, установленный в true, в Databindings.Add перегруженную подпись.

Из MSDN:

Установка этого свойства в True позволяет также обработки ошибок поведения и вызывает событие BindingComplete быть поднят.

Изменить код Databinding это:

cmbUser.DataBindings.Add("SelectedValue", _BsAsset, "employeeId", true); 

и вы увидите результаты, которые вы хотите.

Смежные вопросы