Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Фильтрация  [new]
mar55555
Member

Откуда:
Сообщений: 321
Формирую запрос для заполнения Grid таким образом:
Вызывается каждый раз при фильтрации
 if (FilterKeys["TYPE"] != "-1")  w= w.Where(r => r.TYPE ==  FilterKeys["TYPE"]);
if (FilterKeys["ADDRESS"] != "-1") w = w.Where(r => r.ADDRESS.StartsWith(FilterKeys["ADDRESS"]));
if (FilterKeys["CITY"] != "-1")  w= w.Where(r =>  r.CITY == FilterKeys["CITY"]) ;

 int totalRecords = w.Count();
            if (totalRecords != 0)
            {
                var result = w.OrderBy(d => d.Client_application)
                   .Skip(pager.PageIndex * pager.PageSize)
                 .Take(pager.PageSize);
                GridStatus.DataSource = result;
                pager.Render(totalRecords, result.Count());
            }
            else
            {
                var result = Emptydata;
                GridStatus.DataSource = result;
                pager.Render(totalRecords, result.Rows.Count);
            }

ранее до этого объявлено в другом месте
IQueryable<View_Report_Reestr> w = from a in Global.AWP.View_Report_Reestrs select a;

Фильтр как в access, т.е. накапливается + combobox на тип. Соответственно, сброс значение w до просто выборки из View происходит по нажатию кнопки.

Как организовать удаление одного из фильров, т.е. по сути
select...... where ADDRESS like @p1 and CITY == @p2 and TYPE == @p3 and ADDRESS like @4
преобразовать в
select...... where ADDRESS like @p1 and CITY == @p2 and ADDRESS like @p4
если например пользователь выбрал "все" типы
т.е. как можно удалить условие по where если оно больше не нужно?
8 июн 10, 14:53    [8908886]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация  [new]
stimpi
Member

Откуда: Киев, Украина
Сообщений: 662
заново применять фильтр к данным, вы же с каждым фильтром перетираете коллекцию,
храните датасорс отдельно, филтр отдельно, при необходимости изменения фильтра или коллекции
применять фильтр к заданой коллекции и отображать.
10 июн 10, 12:13    [8922408]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить