gridview에서 결과를 필터링 할 수있는 filterexpression이 있습니다.filterexpression이 "wrong"결과를 반환합니다.
두 개의 드롭 다운리스트 (filterexpressression에는 5와 6, 나머지는 textboxes와 ine입니다)가 있습니다. 여기서 미리 정의 된 특정 범위를 선택하여 결과를 필터링 할 수 있습니다.
FilterExpression="CompanyName LIKE '{0}%' AND CityName like '{1}%' AND Convert(Zipcode, 'System.String') like '{2}%' AND Convert(ActionID, 'System.String') like '{4}%' AND Convert(Employees, 'System.String') like '{5}%' or (Convert(Zipcode, 'System.String') >= '{2}%' AND Convert(Zipcode, 'System.String') <= '{3}%') or (Convert(Employees, 'System.String') >= '{5}%' AND Convert(Employees, 'System.String') <= '{6}%')">
내 문제는 직원 수를 관련되어 다음과 같이
내 filterexpression이다. 직원 수에 사용할 수있는 값은 99, 199, 499, 999 및 1000입니다.
첫 번째 값을 99로 선택하고 두 번째 값을 199로 선택하면 해당 값을 갖는 회사 99를 포함하고 있기 때문에 999 명의 직원이 있습니다. 그러나 논리적으로는 999가 선택된 범위를 벗어나므로 이러한 상황이 발생하지 않아야합니다.
어떻게 해결할 수 있습니까?
편집 : 내 컨트롤 매개 변수에 ConvertEmptyStringToNull = false가 있습니다. 따라서 결과를 얻으려면 각각의 텍스트 상자를 채울 필요가 없습니다.
변환에 대해서는 필터를 지정하지 않으면 그리드 뷰에 데이터가 표시되지 않습니다.
하지만 제거하면 어떻게 특정 범위를 걸러 낼 수 있습니까? – dQlle
@dQlle 당신의 경우에'99로 시작하는 모든 것 '과 일치하는'AND Employees LIKE '99 %'부분 만 제거해야합니다. '> =와 <='를 가진 다른 parth는 이미 원하는대로 행동해야합니다 (숫자에 캐스팅 된 경우). –
int로 변경하여 제안을 시도했지만 새로운 문제가 있습니다. int와 string은> =와 <=가있을 때 정말 좋아하지 않으므로 구문 오류 errror가 발생합니다. 원본 코드를 사용하면 199에서 499까지 다른 범위를 선택하면 완벽하게 작동합니다. – dQlle