18 / 18 / 6
Регистрация: 25.03.2013
Сообщений: 110
1

Как правильно отображать данные в DataGridViewComboBoxColumn?

25.08.2014, 18:36. Показов 4964. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет всем!!!
Создал таблице DataGridView
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 public DataGridViewComboBoxColumn driveComboBox2;
 public void LoadDataGrid2()//Рисуем таблицу 
        {
driveComboBox2= 
            string command = "select idApplication, RegistrApplication.DateTimeA as Дата, RegistrApplication.Телефон, RegistrApplication.Из ,RegistrApplication.В  from RegistrApplication ";
            dataGridView2.DataSource = null;
            dataGridView2.Columns.Clear(); // <-- clear columns
            dataGridView2.DataSource = loadDataGrid(SQLcomm(command));
            dataGridView2.AllowUserToAddRows = false; // remove the null line
            dataGridView2.ReadOnly = true;
            dataGridView2.Columns[0].Visible = false;
            dataGridView2.Columns[1].Width = 80;
            dataGridView2.Columns[2].Width = 109;
            dataGridView2.Columns[3].Width = 250; 
            dataGridView2.Columns[4].Width = 250;
            // drive ComboBox2 to datagridview2
            driveComboBox2.HeaderText = "Водитель";
            driveComboBox2.DefaultCellStyle.BackColor = Color.Green;
            driveComboBox2.Width = 100;
            dataGridView2.Columns.Add(driveComboBox2);
            SQLClose();
надо заполнить список items driveComboBox2
C#
1
2
3
4
5
SqlDataReader reader = SQLcomm("select idDriver from driver" ).ExecuteReader();
                while (reader.Read())
                {
                    ????????.(reader["idDriver"]);
                }
как обычный ComboBox
C#
1
2
3
4
5
6
7
8
9
10
11
12
public void ListComBox(ComboBox CBox, string tabl, string date)//заполнение 
        {
           
                CBox.Items.Clear();
                CBox.Text = "";
                SqlDataReader reader = SQLcomm("select replace("+date+",' ','') AS "+date+ " from " + tabl).ExecuteReader();
                while (reader.Read())
                {
                    CBox.Items.Add(reader[date]);
                }
 
            }
не получается, список не открывается ComboBox в таблице не реагирует
подскажите что делать...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2014, 18:36
Ответы с готовыми решениями:

Как правильно привязать BindingList список к DataGridViewComboBoxColumn
Друзья, помогите разобраться с вопросом. Следующий код работает, но DataGridView не дает...

Как подгружать данные из столбца для использования их в качестве значений DataGridViewComboBoxColumn
Мне нужно ПРОГРАММНО подгружать в Items combobox'а данные из другой таблицы (содержит только ФИО...

Как заставить IE правильно отображать блок ?
Проблема наверное смешная, однако не знаю как ее решить, может подскажет кто? В общем есть 3...

Как правильно хранить и отображать дату и время?
MVC 4 C# Есть модель данных, в которой требуется хранить дату и время для каждого объекта. В базе...

5
121 / 114 / 62
Регистрация: 27.07.2014
Сообщений: 225
25.08.2014, 19:10 2
andrey-m11, для того, чтобы твой ComboBox открывался, колонка в DataGridView в которой он располагается, должна содержать такие-же значения, с одним и тем-же ключом. DataGridViewComboBoxColumn.ValueMember
Здесь ComboBox не самостоятельный элемент, а его содержимое полностью зависит от содержимого колонки
0
18 / 18 / 6
Регистрация: 25.03.2013
Сообщений: 110
25.08.2014, 19:32  [ТС] 3
Hemicide, а пример можно?? понимаю о чем речь но пока сложно сообразить
0
121 / 114 / 62
Регистрация: 27.07.2014
Сообщений: 225
25.08.2014, 20:07 4
Цитата Сообщение от andrey-m11 Посмотреть сообщение
C#
1
2
3
driveComboBox2.HeaderText = "Водитель";
driveComboBox2.DefaultCellStyle.BackColor = Color.Green;
driveComboBox2.Width = 100;
Ты забыл для driveComboBox2 DataSource указать, из которого ComboBox брал бы данные.
А так-же в driveComboBox2.ValueMember = "поле с ID водителей", а в driveComboBox2.DisplayMember = "посе с именами водителей"

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
 
        DataTable DriversTable;
        DataTable MainDrivers;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            Initialize_DriversTable();
            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.DataSource = MainDrivers;
 
            using (DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn())
            {
                column.DataSource = DriversTable;
                column.ValueMember = "ID";
                column.DisplayMember = "Name";
                column.Name = "Drivers";
                column.HeaderText = "Водители";
                column.DataPropertyName = "Name";
                column.SortMode = DataGridViewColumnSortMode.NotSortable;
                column.Width = 240;
                this.dataGridView1.Columns.Add(column);
            }
 
        }
 
        private void Initialize_DriversTable()
        {
 
            //Главная таблица, которая является ресурсом для всего dataGridView
            MainDrivers = new DataTable();
            MainDrivers.Columns.Add(new DataColumn("IDDrivers", typeof(Guid)));
 
 
            //Таблица для колонки с водителями
            DriversTable = new DataTable();
            DriversTable.Columns.Add(new DataColumn("ID", typeof(Guid)));
            DriversTable.Columns.Add(new DataColumn("Name", typeof(string)));
 
            DataRow dr = null;
 
            dr = DriversTable.NewRow();
            dr["ID"] = Guid.NewGuid();
            dr["Name"] = "Вова";
            DriversTable.Rows.Add(dr);
 
            dr = DriversTable.NewRow();
            dr["ID"] = Guid.NewGuid();
            dr["Name"] = "Петя";
            DriversTable.Rows.Add(dr);
 
            dr = DriversTable.NewRow();
            dr["ID"] = Guid.NewGuid();
            dr["Name"] = "Саша";
            DriversTable.Rows.Add(dr);
 
        }
    }
}
1
18 / 18 / 6
Регистрация: 25.03.2013
Сообщений: 110
27.08.2014, 16:13  [ТС] 5
Hemicide, спасибо очень ценная информация... но немного не то ... сам разобрался просто
C#
1
 dataGridView2.ReadOnly = true;//запрет редактирования
и потому не открывается.
.убрал и заполнил так..
C#
1
2
3
4
5
6
7
8
9
10
11
12
             string command2 = "select idDriver from Drivers";
            twoDriveComboBox2 = new DataGridViewComboBoxColumn();
            twoDriveComboBox2.HeaderText = "Позывной";
            twoDriveComboBox2.DefaultCellStyle.BackColor = Color.Yellow;
            twoDriveComboBox2.Width = 300;
            SqlDataReader reader = SQLcomm(command2).ExecuteReader();
            while (reader.Read())
            {
                twoDriveComboBox2.Items.Add(reader["Позывной"]);
            }
            
            dataGridView2.Columns.Add(twoDriveComboBox2);
все работает...
0
121 / 114 / 62
Регистрация: 27.07.2014
Сообщений: 225
27.08.2014, 16:17 6
Цитата Сообщение от andrey-m11 Посмотреть сообщение
C#
1
dataGridView2.ReadOnly = true;//запрет редактирования
Да... я тоже внимания не обратил...
0
27.08.2014, 16:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2014, 16:17
Помогаю со студенческими работами здесь

Как отображать связные данные
Здравствуйте. Подскажите пожалуйста как на datagridview отображать связные данные. ...

Как сохранять данные из Combobox в файл и потом отображать данные из файла в Combobox-e?
как сохранять данные из Combobox в файл и потом отображать данные из файла в Combobox-e?

Как отображать данные из таблицы access?
Пример: Есть две формы. В одном есть кнопки &quot;яблоки&quot; и &quot;груши&quot;, и при нажатии на первую кнопку в...

Как отображать данные из таблицы БД в textBox
Подскажите как отображать данные из таблицы бд в textBox.. я сдела что бы данные заносило в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru