Ich versuche, eine Sammlung mit dem Filterausdruck aus meinem Radgrid abzufragen. Auf dem RadGrid habe ich die Eigenschaft EnableLinqExpressions = "false"
Bei Verwendung des Codes wird jedoch die Ausnahme " Expression Expected
:
results = results.Where(filterExpression);
Im Moment hat der Filterausdruck das Format "(([SCRIPT_AGENT] = 'Jack Davies'))"
Wie kann ich dieses Problem lösen?
Wenn ich Folgendes eingebe, funktioniert es:
results = results.Where("SCRIPT_AGENT == @0", "Jack Davies")
Gibt es eine Möglichkeit, meinen aktuellen Filterausdruck zu verwenden, oder gibt es eine Möglichkeit, ihn in ein verwendbares Format zu konvertieren?
Anstatt den Filterausdruck des Rad-Gitters zu verwenden, habe ich mich für einen anderen Ansatz entschieden und die aktuellen Daten im Rad-Gitter selbst verwendet, wenn ein Filter angewendet wird:
// 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));
}
Dies beseitigte den Fehler und führte zu den gleichen Ergebnissen wie bei Verwendung der Filterausdrücke.