powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отфильтровать комбобокс в зависимости от значения другого комбобокса
4 сообщений из 4, страница 1 из 1
Отфильтровать комбобокс в зависимости от значения другого комбобокса
    #38661345
Clava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть грид с 2-мя комбо-колонками. Необходимо в зависимости от значения в одном комбике отфильтровать выпадающий список в другом.
Делаю аналогично примеру, если значения в груде для 1 колонки одинаковые - то работает отлично, но если выставить разные выдает ошибку Datagridviewcomboxboxcell value is invalid. Наверняка кто-то сталкивался с такой проблемой. Подскажите плиз
Код: 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.
private void Form1_Load(object sender, EventArgs e)
{
    this.territoriesTableAdapter.Fill(this.northwindDataSet.Territories);
    this.regionTableAdapter.Fill(this.northwindDataSet.Region);

    // Setup BindingSource for filtered view.
    filteredTerritoriesBS = new BindingSource();
    DataView dv = new DataView(northwindDataSet.Tables["Territories"]);
    filteredTerritoriesBS.DataSource = dv;

}

private void dataGridView1_CellBeginEdit(object sender,
		 DataGridViewCellCancelEventArgs e)
{
    if (e.ColumnIndex == territoryComboBoxColumn.Index)
    {
        // Set the combobox cell datasource to the filtered BindingSource
        DataGridViewComboBoxCell dgcb = (DataGridViewComboBoxCell)dataGridView1
						[e.ColumnIndex, e.RowIndex];
        dgcb.DataSource = filteredTerritoriesBS;

        // Filter the BindingSource based upon the region selected
        this.filteredTerritoriesBS.Filter = "RegionID = " +
            this.dataGridView1[e.ColumnIndex - 1, e.RowIndex].Value.ToString();
    }
}

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == this.territoryComboBoxColumn.Index)
    {
        // Reset combobox cell to the unfiltered BindingSource
        DataGridViewComboBoxCell dgcb = (DataGridViewComboBoxCell)dataGridView1
						[e.ColumnIndex, e.RowIndex];
        dgcb.DataSource = territoriesBindingSource; //unfiltered

        this.filteredTerritoriesBS.RemoveFilter();
    }
}
...
Рейтинг: 0 / 0
Отфильтровать комбобокс в зависимости от значения другого комбобокса
    #38661832
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Clava,

для данного функционала необходимо делать кастомную колонку
DataGridViewComboBoxColumn - не подойдёт
...
Рейтинг: 0 / 0
Отфильтровать комбобокс в зависимости от значения другого комбобокса
    #38662172
Clava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача то вполне стандартная вроде бы. Неужели стандартной DataGridViewComboBoxColumn нельзя это реализовать? Я возможно не вполне понятно описала суть проблемы. Есть 2 колонки: 1. Категория, 2. подкатегория. Для каждого выбранного значения категории список подкатегорий должен быть свой. Сейчас это работает только для новых записей, если я пытаюсь изменить существующие, то падает по ошибке.
http://social.msdn.microsoft.com/Forums/ru-RU/9bd7f2dd-ad6d-4dce-b580-a68527945831/faq-windows-forms-data-controls?forum=fordesktopru#33d6d05d-1126-4d79-b62c-c9b2ea735376
...
Рейтинг: 0 / 0
Отфильтровать комбобокс в зависимости от значения другого комбобокса
    #38662587
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ClavaЗадача то вполне стандартная вроде бы.
Совершенно не стандартная. Ни разу не видел такого функционала.

Предлагаю идти стандартным путем . Как это часто делается в вебе.
То есть во время редактирования показывать на месте второго комбобокса юзерконтрол похожий гридкомбобокс у которого фильтровать источник.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отфильтровать комбобокс в зависимости от значения другого комбобокса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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