我有一个filterexpression,使您能够从gridview过滤结果。filterexpression返回“错误”的结果
我有两个dropdownlists(filterexpression中的5和6,其余的是textboxes和工程ine),您可以在其中选择特定的预定义范围来筛选结果。
我filterexpression如下:
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}%')">
我的问题是关于员工的数量。在我有99,199,499,999和1000的雇员人数的可用值中。
如果我选择第一个值为99,第二个值为199,那么我也会得到公司的结果有999名员工,因为它包含了99个。但这在逻辑上不应该发生,因为999超出了所选范围。
任何想法如何解决这个问题?
编辑:忘了提,我在我的控制参数中有ConvertEmptyStringToNull = false。所以我不必填写每个文本框来获得结果。
关于转换,这是我必须做的,否则它不会在gridview中显示任何数据,除非我指定了一个过滤器。
但是,如果我删除,那么我应该如何筛选出一个特定的范围? – dQlle
@dQlle您应该删除'AND Employees LIKE '99%''部分,它会匹配您的案例中以99开头的所有内容。另一个使用'> =和<='的parth应该已经做了你想要的(如果转换为数字)。 –
我试着改变它为int的建议,但后来我有一个新问题。它会引发某种语法错误,因为当>和<=时,int和string并不是真的喜欢它。 如果我用我原来的代码去,它可以很好地工作,如果我选择另一个范围,比如从199到499. – dQlle