フィルタリング用に各ヘッダーにドロップダウンボックスがあるグリッドビューがあります。各フィルターには、ロード時にその列とは異なる値がロードされます。実行時に「ALL」を追加して、ユーザーがそのフィールドからすべてを選択できるようにします。ドロップダウンボックスが「ALL」に設定されている場合、フィールドを無視するようにlinqステートメントを動的に作成しようとしています。これは可能ですか?これを1つのステートメントで実行できるかどうかを確認したいと思います。以下の例は2つのドロップダウンボックスのみを示していますが、私の実際のケースには最大5つあります。
if thenステートメントを使用することを選択した場合、最終的にスパゲッティコードになります。
DropDownList drpOwners = this.grdOtherQuotes.HeaderRow.FindControl("drpOwners") as DropDownList;
DropDownList drpCompanyName = this.grdOtherQuotes.HeaderRow.FindControl("drpCompanyName") as DropDownList;
var filteredList = (from x in allQuotes
where (drpOwners.SelectedValue != ALL) ? x.SalesRepFullName == drpOwners.SelectedValue:true
&& drpCompanyName.SelectedValue != ALL ? x.CompanyName == drpCompanyName.SelectedValue: true
select x);