2017-07-05 9 views
-1

以下のコードをチェックボックスリストに基づいてフィルタリングしていますが、何も選択しないとフィルタが機能しません。私は値をチェックしなければ、すべての値を表示する必要があります。 "チェックボックスLINQでチェックされているなしのリスト値

var selectedIds = chklstDepartment.Items.Cast<ListItem>().Where(item => item.Selected).Select(item => item.Value).ToArray(); 
         List<LessonLearnDetails> objLessonDetails = objLessonDashboard.getLessonLearntDetails(); 
         var searchData = objLessonDetails.Where(i => (ddlAsset.SelectedValue == "0") || (i._Asset.AssetID == ddlAsset.SelectedValue)) 
        .Where(i => (ddlAuditType.SelectedValue == "0") || (i._Audit.AuditTypeID == ddlAuditType.SelectedValue)) 
        .Where(i => (chklstDepartment.SelectedValue == "0") || (selectedIds.Contains(i._Department.DepartmentID))) 
        .Where(i => (ddlCategory.SelectedValue == "0") || (i._Category.CategoryID == ddlCategory.SelectedValue)) 
         .Where(i => (ddlStartYear.SelectedItem.Text == "--Select All--") || (Convert.ToInt32(i._Year.StartYear) >= Convert.ToInt32(ddlStartYear.SelectedItem.Text))) 
       .Where(i => (ddlEndYear.SelectedItem.Text == "--Select All--") || (Convert.ToInt32(i._Year.EndYear) <= Convert.ToInt32(ddlEndYear.SelectedItem.Text))) 
        .Distinct().ToList(); 
         BindGrid(searchData); 
+0

値をチェックしないと、現在の結果はどうなりますか? –

+0

カウントが来ている0 –

+1

チェックしていないとき、あなたは 'SelectedValues'が" 0 "か" --Select All-- "ですか?どうやって証明できますか? –

答えて

0

使用 "0" の代わりに":

以下はそのためのコードです。

chklstDepartment.SelectedValue == "" 
関連する問題