Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как правильно добавить combobox в datagridview? / 9 сообщений из 9, страница 1 из 1
02.08.2006, 18:55
    #33895662
krot-s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
Господа, подскажите как правильно добавить combobox в datagridview?

Сейчас я делаю вот так:
dbConn - мой класс, который заполняет датасэт из sql запроса или хранимой процедуры.
Код: plaintext
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.
dbConn.FillDataSet("SELECT id, name from USERS", "USERS", null, null, null, false);

DataTable tbl = dbConn.FillDataSet("SELECT id, user_id, date_, status from ORDERS", "ORDERS", null, null, null, false);
dataGridView1.DataSource = tbl;

// добавление нового столбца
DataGridViewComboBoxColumn Column2 = new DataGridViewComboBoxColumn();
Column2.DropDownWidth = 160;
Column2.HeaderText = "Пользователь";
Column2.Name = "USER";
Column2.MaxDropDownItems = 5;
Column2.FlatStyle = FlatStyle.Flat;
Column2.DataSource = dbConn.ds.Tables["USERS"];
Column2.DisplayMember = "NAME";
Column2.ValueMember = "ID";
dataGridView1.Columns.Insert(dataGridView1.ColumnCount, Column2);

// выставить значения по умолчанию для колонки с combobox
int i = 0;
foreach(DataRow r in dbConn.ds.Tables["ORDERS"].Rows)
{
dataGridView1.Rows.Cells["USER"].Value = r["USER_ID"];
i++;
}

При заполнение dataset'a создается обычная колонка user_id, поэтому ее надо удалить
private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
if (e.Column.Name == "USER_ID")
dataGridView1.Columns.Remove(e.Column);
}

Весь этот код работает, только не отрабатывает метод Update у адаптора.
Т.е. все изменяются все столбцы кроме USER_ID.
Как привязать combobox, у которого datasource - таблица USERS к таблице ORDERS, так чтобы при изминении юзера это сохранялось в базу?
Или можно сделать то же самое более изящно, чем у меня?

Надеюсь я ясно изложил вопрос...
...
Рейтинг: 0 / 0
04.08.2006, 13:46
    #33899776
krot-s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
Ведь все делали такое уже... Помогите кодом плз.
...
Рейтинг: 0 / 0
08.08.2006, 11:57
    #33905080
krot-s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
Товарищи! Помогите кто-нить! Или здесь опытом никто ни с кем не делится?
...
Рейтинг: 0 / 0
08.08.2006, 14:24
    #33905563
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
krot-sТоварищи! Помогите кто-нить! Или здесь опытом никто ни с кем не делится?

Зайди в свойство колонок там можно установить вид отображаемой колонки и выбери ColumnType = ComboBox.
...
Рейтинг: 0 / 0
08.08.2006, 14:44
    #33905631
krot-s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
Pavluha krot-sТоварищи! Помогите кто-нить! Или здесь опытом никто ни с кем не делится?

Зайди в свойство колонок там можно установить вид отображаемой колонки и выбери ColumnType = ComboBox.

А как это сделать во время выполнения?
...
Рейтинг: 0 / 0
08.08.2006, 16:18
    #33905960
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
krot-s Pavluha krot-sТоварищи! Помогите кто-нить! Или здесь опытом никто ни с кем не делится?

Зайди в свойство колонок там можно установить вид отображаемой колонки и выбери ColumnType = ComboBox.

А как это сделать во время выполнения?

Ты создай колонку и сделай ее ComboBox-ом. С# за тебя напишет код. Тебе останется только посмотреть его.
...
Рейтинг: 0 / 0
09.08.2006, 10:26
    #33907196
regexp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
Привязку данных к контролам (любым) лучше осуществлять при помощи BindingSource, к примеру:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DataSet ds = new DataSet();
DataTable dt = bookDBSet.Tables[tblName];
SqlConnection connection = new SqlConnection(connectionString);

SqlDataAdapter da = new SqlDataAdapter((" select * from " + tblName), connection);
da.Fill(ds , tblName);

da.InsertCommand = new SqlCommand(InsertCommandString, connection);
da.UpdateCommand = new SqlCommand(UpdateCommandString, connection);
da.DeleteCommand = new SqlCommand(DeleteCommandString, connection);
da.InsertCommand.Parameters.Add(......);
da.UpdateCommand.Parameters.Add(......);
da.DeleteCommand.Parameters.Add(......);

BindingSource bs = new BindingSource();
bs.DataSource = ds;
bs.DataMember = dt.TableName;
dataGridView1.DataSource = bs;

BindingNavigator bn = new BindingNavigator();
/*инициализация */
bn.BindingSource = bs;

Почитать об этом можно в MSDN или любой книжке, где более менее подробно освещается ado.net 2.0 или winforms.
А вообще говоря, половину работы за программиста делает сама студия, тут главное понимать, какова архитектура. Попробуйте создать DataGridView полностью при помощи визардов студии. Тогда Вы будете иметь представление о том, как оно должно, в принципе, с точки зрения архитекторов .net, выглядеть.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
15.11.2012, 15:23
    #38039932
The_REAL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
старая тема.. точнее таких тем тут сотни - но внятного примера так нигде и нет =(

Так что присоединюсь к вопросу автора - как вывести табличку с ComboBox-ами из вторичного ключа (другой таблицы)? Требуется пример рабочего кода.
...
Рейтинг: 0 / 0
15.11.2012, 21:59
    #38040549
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно добавить combobox в datagridview?
The_REALстарая тема.. точнее таких тем тут сотни - но внятного примера так нигде и нет =(

Так что присоединюсь к вопросу автора - как вывести табличку с ComboBox-ами из вторичного ключа (другой таблицы)? Требуется пример рабочего кода.

Примера нет, потому что никто этот код не пишет.

Это пишет студия

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
	// 
            // comboBox1
            // 
            this.comboBox1.BackColor = System.Drawing.SystemColors.WindowText;
            this.comboBox1.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsNet, "StantionId", true));
            this.comboBox1.DataSource = this.bsStantion;
            this.comboBox1.DisplayMember = "Stantion";
            this.comboBox1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.Simple;
            this.comboBox1.FlatStyle = System.Windows.Forms.FlatStyle.System;
            this.comboBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.comboBox1.ForeColor = System.Drawing.SystemColors.Window;
            this.comboBox1.FormattingEnabled = true;
            this.comboBox1.Location = new System.Drawing.Point(171, 0);
            this.comboBox1.Margin = new System.Windows.Forms.Padding(0);
            this.comboBox1.Name = "comboBox1";
            this.comboBox1.Size = new System.Drawing.Size(399, 24);
            this.comboBox1.TabIndex = 10;
            this.comboBox1.TabStop = false;
            this.comboBox1.ValueMember = "StantionId";
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как правильно добавить combobox в datagridview? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]