Как исправить фильтр?

Всем привет. Есть 2 listbox, в одном список стран, в другом список жанров. Пытаюсь сделать фильтр по странам и по жанрам. Мой код ниже:
int curCountry = filterCountryPanel.SelectedIndex;
            if (curCountry == 0)
            {
                (listRadioStation.DataSource as DataTable).DefaultView.RowFilter = null;
            }
            else
            {
                (listRadioStation.DataSource as DataTable).DefaultView.RowFilter = string.Format("country = '{0}'", filterCountryPanel.SelectedItem.ToString());
            }

            int curGenre = filterGenrePanel.SelectedIndex;
            if (curGenre == 0)
            {
                (listRadioStation.DataSource as DataTable).DefaultView.RowFilter = null;
            }
            else
            {
                (listRadioStation.DataSource as DataTable).DefaultView.RowFilter = string.Format("genre = '{0}'", filterGenrePanel.SelectedItem.ToString());
            }


НО, фильтр работает криво, т.е. не могу выбрать Страна - Россия, жанр - Поп... Выдает либо весь список со страной Россия, либо весь списко с жанром Поп - в зависимости, от того, какой listbox был выбран последним.

Если оочень грубо, сортировка одновременно по 2-м столбцам. СПАСИБО
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
twobomb
@twobomb
string filter = "";
if (filterCountryPanel.SelectedIndex != 0)
  filter = string.Format("country = '{0}'", filterCountryPanel.SelectedItem.ToString());
if (filterGenrePanel.SelectedIndex != 0)
  filter += (filter == "" ? "" : " and ") + string.Format("genre = '{0}'", filterGenrePanel.SelectedItem.ToString());
(listRadioStation.DataSource as DataTable).DefaultView.RowFilter = filter == ""?null:filter;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы