2009-07-21 3 views
0

У меня есть раскрывающийся список, который заполняется из базы данных. Это прекрасно работает. Нецелевое значение элемента управления равно -1, а неселективная метка «..». Когда я пытаюсь открыть существующую запись для редактирования, я не могу выбрать правильную строку. В ID есть три части: 111A-DD-12345. Когда запись возвращается из базы данных, идентификатор анализируется на три поля. Первая и третья части представляют собой текстовые поля на странице, но средняя часть - выпадающий список. Когда мы открываем существующую запись, мы разобрать идентификатор со следующим кодом:установка правильной строки выпадающего списка не работает

string[] chunks = cID.Split('-'); 
ddOffice.SelectedItem.Text = chunks[1]; 

Но это только изменяет первую строку DDL для DD (используя пример ID выше), так что мы в конечном итоге с двумя строки в ddl, которые имеют одинаковый отображаемый текст. Как программно установить выпадающий список на правильное значение?

Редактировать: Мы также пробовали ddOffice.SelectedValue = chunks [1] , но это просто отображает .. неиспользуемой строки по умолчанию.

ТИА, Theresa

ответ

1

Попробуйте это:

ddOffice.SelectedIndex = ddOffice.Items.IndexOf(ddOffice.Items.FindByText(chunks[1])); 
+1

Я всегда считал работу с индексом более надежной, чем использование текстового значения поля. Обработка текста может быть неустойчивой. – joshlrogers

+0

Спасибо, Мэтью! Это сработало отлично. – Theresa

0

(Edited) Вы настройки Text свойство текущего SelectedItem и не устанавливая саму SelectedItem. В зависимости от того, как ваши данные получены, вместо этого выберите SelectedIndex или SelectedValue.

+0

Да, я понял, что после того, как я разместил вопрос. – Theresa

+0

Разве это не всегда так. – stuartd

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