我正在尝试使用radgrid中的过滤器表达式查询集合。在RadGrid上我有EnableLinqExpressions = "false"
但是在使用代码时我得到了异常Expression Expected
:
results = results.Where(filterExpression);
目前,过滤器表达式采用格式
"(([SCRIPT_AGENT] = 'Jack Davies'))"
我该如何解决这个问题?
当我输入以下内容时,它可以工作:
results = results.Where("SCRIPT_AGENT == @0", "Jack Davies")
是否有使用我当前的过滤器表达式或者是否有某种方法将其转换为可用的格式?
答案 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));
}
这消除了错误并产生了与使用过滤器表达式相同的结果。