C # Windows Forms ComboBox Как установить значение по умолчанию «Выбрать», изначально загружает данные из datatable - PullRequest
0 голосов
/ 24 октября 2018

Я искал на сайте несколько ссылок на то, что я хочу сделать.Ни один не работал в моем случае.

Это кажется простой проблемой.Я просто пытаюсь установить значение по умолчанию "--Select -".

Я заполняю comboBox из данных из базы данных

        Admin_BL admBL = new Admin_BL();
        //populates datatable from database
        dtBlds = admBL.GetActiveBuildings();

        cmbBuilding.DataSource = dtBlds;
        cmbBuilding.Text = "--Select--";

        cmbBuilding.DisplayMember = "Building";
        cmbBuilding.ValueMember = "Building"; 

Я также использовал это:

cmbBuilding.Items.Insert(0, "Select Bld");

Это кажется простой задачей. Я не уверен, почему это не работает в формах Windows. Буду признателен за помощь. Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Проблема здесь в том, что вы привязываетесь к объекту, и этот объект не содержит записи для «- Выбрать -».Либо вам нужно добавить эту запись во время запроса:

SELECT 0 AS ID, '-- Select --' AS Building
UNION ALL
SELECT ID, BUILDING FROM <TABLE>

Затем, когда вы свяжетесь, вы обнаружите, что «- Выбрать -» - это первый элемент.

Если вы неЕсли вы не хотите изменить свой запрос, вы можете просто вставить новую строку в таблицу данных, как только вы получите данные.

Предполагая, что у вас есть только 2 столбца в вашей таблице данных (ID и здание):

DataRow row = dtBlds.NewRow();
row[0] = 0;
row[1] = "-- Select --";
dtBlds.Rows.InsertAt(row, 0);

Как только вы это сделаете, вы можете выполнить привязку:

cmbBuilding.DataSource = dtBlds;
cmbBuilding.DisplayMember = "Building";
cmbBuilding.ValueMember = "Building"; 
0 голосов
/ 24 октября 2018

учитывая, что "--Select--" - это первый элемент в вашем комбинированном окне, во время выполнения вы выбираете первый элемент по его индексу (конечно, он может быть установлен в любом другом индексе, например, в третьем элементе, тогда индекс будет равен 2):

cmbBuilding.SelectedIndex = 0;

Чтобы добавить "--Select--" в функцию, которая заполняет элементы комбинированного списка, прежде чем что-либо добавить "--Select--" к его элементам, а затем к элементам из базы данных:

cmbBuilding.Items.Add("--Select--");

// добавляем другие элементы из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...