私は自分のシステムの管理者用の検索ページを実装しようとしています。短いストーリー、そこに3つのパラメタが基準としてあります。 1.ユーザー、2.projects、3.顧客。管理者は、これらの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