使用Radgrid过滤器表达式查询集合会出现异常'Expression Expected'

时间:2016-02-17 15:46:53

标签: c# asp.net telerik telerik-grid dynamic-linq

我正在尝试使用radgrid中的过滤器表达式查询集合。在RadGrid上我有EnableLinqExpressions = "false"

的属性

但是在使用代码时我得到了异常Expression Expected

results = results.Where(filterExpression);

目前,过滤器表达式采用格式 "(([SCRIPT_AGENT] = 'Jack Davies'))"

我该如何解决这个问题?

当我输入以下内容时,它可以工作:

results = results.Where("SCRIPT_AGENT == @0", "Jack Davies")

是否有使用我当前的过滤器表达式或者是否有某种方法将其转换为可用的格式?

1 个答案:

答案 0 :(得分:0)

我没有使用rad网格的滤镜表达式,而是决定使用不同的方法,并在应用滤镜时使用rad网格中的当前数据:

        // If there is a filter applied then enter the loop if there isn't then the filter expression will be empty 
        if (!String.IsNullOrEmpty(filterExpression))
        {                
            // Create a new list of strings to hold the sequence ids
            List<string> sequenceIds = new List<string>();

            // For each row in the radgrid...
            foreach (GridDataItem row in rgCallRecordings.Items) // loops through each rows in RadGrid
            {
                // ...Add the sequence id to the list
                sequenceIds.Add(row.GetDataKeyValue("SEQUENCE_ID").ToString());                    
            }
            // Only return results whose sequence ids are in the list
            results = results.Where(a => sequenceIds.Contains(a.SEQUENCE_ID));                
        }    

这消除了错误并产生了与使用过滤器表达式相同的结果。