2012-03-21 4 views
0

목록을 만들었으며 특정 상황에서 목록이 채워집니다. 단순한. 그러나 드롭 다운 선택을 기반으로 목록을 필터링하려고하면 카운트가 0으로 되돌아옵니다. 드롭 다운의 값과 목록에 끌어온 값이 모두 동일하다는 것을 수동으로 확인한 경우 이는 사실이 아닙니다. .목록 필터링은 0으로 되돌아옵니다. 그러나 아니어야합니다.

현명한 사람들이 어디에서 잘못 될지 알아볼 수 있습니까? 나는 다음 두 가지 방법을 동일한 결과로 시도했다.

myList = myList.FindAll(delegate(Partner part) 
{ 
    return part.RegionId.Equals(ddlLeadCounty.SelectedItem.Value); 
}); 

또는

myList = myList.Where(c => c.RegionId.Equals(ddlLeadCounty.SelectedItem.Value)).ToList(); 

파트너 목록 뒤에

C# .NET 코드 :

public class Partner 
{ 
    public int LeadOppCount; 
    public string Guid; 
    public int RegionId; 

    public Partner(int LeadOppCount, string Guid, int RegionId) 
    { 
     this.LeadOppCount = LeadOppCount; 
     this.Guid = Guid; 
     this.RegionId = RegionId; 
    } 
} 

드롭 다운 목록 예 :

<asp:ListItem value="100000004">Berkshire</asp:ListItem>

내 테스트에서 적어도 하나의 목록 항목에는 100000004의 지역 ID가 있습니다.

미리 감사드립니다. 즉

int valueSelected = (int)ddlLeadCounty.SelectedItem.Value; 
myList.FindAll(x=>x.RegionId == valueSelected); 

이 가능 를 들어, Equals을 사용하지 마십시오

+0

'SelectedItem'의'Value'는 어떤 타입입니까? 실제 가치는 무엇입니까? 'RegionId'는 어떤 타입입니까? myList에는 DDL의 값이 포함되어 있습니까? – Oded

+0

위의 코드는 언제 호출합니까? 이 WPF 또는 WinForms입니까? 데이터를 드롭 다운에 바인딩하는 방법을 보여줄 수 있습니까? – Slugart

+0

은 추가 코드로 수정되었습니다. 드롭 다운은 하드 코딩되어 있습니다. 파트너 목록은 즉시 작성됩니다. – Deadlykipper

답변

2

나는 그것이 integer의 가정, 그래서 의사이 뭔가를 쓰기 , 당신은 내가 RegionId 볼 걸 고려 박스형 값은 SelectedValue이지만 구체적인 유형을 사용합니다.

을 사용해야합니다.

+0

맞아, 친구. 나는 그 일을 생각해야만했다. 매우 감사합니다 :) – Deadlykipper

0

문제는 SelectedIndex.Value가 int가 아닌 문자열 값이므로 구문 분석해야한다는 것입니다. 다음 라인이 작동해야합니다 :

var myListFiltered = myList.Where(c => c.RegionId.Equals(int.Parse(ddlLeadCounty.SelectedItem.Value))).ToList(); 
관련 문제