시스템 관리자에게 검색 페이지를 구현하려고했습니다. 짧게 긴 이야기, criterias로 3 paramater. 1. 사용자, 2. 프로젝트, 3. 고객. 관리자는 이러한 세 가지 기준을 조합하여 만들 수 있습니다. 예를 들어 "이 프로젝트와 모든 고객에게 할당 된 모든 사용자를보고 싶습니다."또는 "이 고객 및이 프로젝트를 보려하지만 모든 사용자를보고 싶습니다." 그런 필터링을 어떻게 구현합니까? 나는 asp.net 4.0과 linq를 사용하고있다.관리자에 대한 필터링 검색 구현 방법
여기에 함수 내용이 모두 있습니다. 나는 조건에 의해 그것을 만들었지 만 전혀 건강하지 않습니다.
public static List<Data.CurrentActivity> GetUsersActivitySearch(string employeeId, string projectId, string customerId, DateTime startDate, DateTime endDate)
{
DataClassesDataContext dc = new DataClassesDataContext(General.ConnectionString);
if(projectId=="" && customerId!="")
return dc.CurrentActivities.Where(t => t.User.RecId.ToString() == employeeId && t.Customer.RecId.ToString() == customerId && t.ActivityDate >= startDate && t.ActivityDate <= endDate).ToList();
else if (projectId != "" && customerId == "")
return dc.CurrentActivities.Where(t => t.User.RecId.ToString() == employeeId && t.Project.RecId.ToString() == projectId && t.ActivityDate >= startDate && t.ActivityDate <= endDate).ToList();
else if (projectId != "" && customerId != "")
return dc.CurrentActivities.Where(t=>t.User.RecId.ToString()==employeeId && t.Customer.RecId.ToString()==customerId && t.Project.RecId.ToString()==projectId && t.ActivityDate>=startDate && t.ActivityDate<=endDate).ToList();
return dc.CurrentActivities.Where(t => t.User.RecId.ToString() == employeeId && t.ActivityDate >= startDate && t.ActivityDate <= endDate).ToList();
}
적어도 시도해보아야 만 코드가 게시 될 수 있습니다. 다른 사람들이 완전한 솔루션을 찾지 않을 것으로 기대하지 마십시오. – Glenn