2011-04-10 3 views
2

제품 목록을 표시하고이 데이터를 필터링 할 수있는 드롭 다운 목록이 4 개 있습니다.LINQ 쿼리 및 여러 클라이언트 필터에 대한 도움말

필터에 대해 가능한 모든 조합 LINQ 쿼리를 작성하지 않고도 다른 모든 필터의 현재 값을 고려할 수있는 LINQ 쿼리를 어떻게 만들 수 있습니까?

드롭 다운에서 제조사를 선택하고 해당 제품을 표시 한 다음 색상 등으로 새 결과를 필터링하고 싶습니다. 나중에 필터링 된 새 결과에 적용되지 않는 필터를 숨 깁니다.

website은 내가 왼쪽에서 수행하려고하는 작업을 정확히 수행합니다. 차이점은 autopostback (한 번에 하나의 필터)에서 필터링된다는 것입니다.

답변

2

LINQ 쿼리가 반드시 하나의 문일 필요는 없지만 일부만 작성하면됩니다. LINQ 쿼리를 만들면 아직 원본 데이터와 아무런 관련이 없으며 서로 빌드하는 IEnumerable/IQueryable 인터페이스의 식을 구성합니다. 열거하거나 ToList()과 같은 메서드를 호출하여 실행하지 않는 한 쿼리에 계속 추가 할 수 있으며 아직 실행되지 않습니다.

// create original query, no filters 
var query = from x in whatever....; 

// add each filter one by one 

if (condition1) 
{ 
    query = query.Where(row => condition 1 expression); 
} 

if (condition2) 
{ 
    query = query.Where(row => condition 2 expression); 
} 

if (condition3) 
{ 
    query = query.Where(row => condition 3 expression); 
} 

if (condition4) 
{ 
    query = query.Where(row => condition 4 expression); 
} 
+0

아의 완벽한 :

당신이 뭔가를 할 수 있습니다. 그것은 예상대로 작동합니다. –