我有一个列出了我所有工厂的列表框。我在listbox(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 :(得分:0)
尝试代替:
BetroffeneWerkeAll.DataSource = from allF in AllFactory select allF.ClientCode;
此:
BetroffeneWerkeAll.DataSource = from allF in filteredFac select allF.ClientCode;
执行Except
时,它会返回“第二个列表中的项目以外的输入列表”,而不会设置第一个列表。
不确定,但在我看来,selectedFac
的类型为ClientCode
,而不是AllFactory
中的项目。如果是这种情况,您应该使用:
var result = AllFactory.Where(item =>
!selectedFac.Any(filteredValue => filteredValue == item.ClientCode)).ToList();