2016-08-04 30 views
0

我有一個列表框,我的所有工廠都被加載到列表框中。我也在列表框中選擇了一個工廠(1)。從兩個列表中獲取已過濾列表

列表框中所有工廠的綁定代碼。

protected void fillWerke() 
{ 
    //BindingListPersistable<Liebherr.Hau.Erp.Client> bl = new BindingListPersistable<Liebherr.Hau.Erp.Client>(); 
    AllFactory = new BindingListPersistable<Liebherr.Hau.Erp.Client>(); 
    AllFactory = Manager.LoadClients(); 
    BetroffeneWerkeAll.DataSource = from allF in AllFactory select allF.ClientCode; 
    BetroffeneWerkeAll.DataBind(); 
} 

我想的是什麼,

protected void fillWerke() 
{ 
    //BindingListPersistable<Liebherr.Hau.Erp.Client> bl = new BindingListPersistable<Liebherr.Hau.Erp.Client>(); 
    AllFactory = new BindingListPersistable<Liebherr.Hau.Erp.Client>(); 
    AllFactory = Manager.LoadClients(); 
    var selectedFac; 
    var filteredFac; 
    if(SelectedWerke.Items.Count > 0) 
    { 
     selectedFac = SelectedWerke.Items; 
     filteredFac = AllFactory.Except(selectedFac); 
    } 
    BetroffeneWerkeAll.DataSource = from allF in AllFactory select allF.ClientCode; 
    BetroffeneWerkeAll.DataBind(); 
} 
然而

,我希望你明白我的意思,對不起,請嘗試我的英語不好

回答

0

代替:

BetroffeneWerkeAll.DataSource = from allF in AllFactory select allF.ClientCode; 

這:

BetroffeneWerkeAll.DataSource = from allF in filteredFac select allF.ClientCode; 

當您執行Except時,它將返回「除第二個列表中的項目之外的輸入列表」並且不設置第一個列表。


不知道,但在我看來,那是selectedFacClientCode的類型,而不是在AllFactory的項目。如果是這樣的話,你應該使用:

var result = AllFactory.Where(item => 
     !selectedFac.Any(filteredValue => filteredValue == item.ClientCode)).ToList(); 
+0

謝謝我 – didntCthatcoming

+0

@didntCthatcoming :)工作 - 如果我的補充說明,也有助於您瞭解這個問題,不僅要解決它,請考慮upvoting我的回答 –

+0

@didntCthatcoming - 很高興在這裏:) –