AUTHOR: Attila Antal
DATE POSTED: November 08, 2018
In some scenarios the developer would need to use the FilterExpressions generated by RadGrid to query an MSSQL database. Most of the time, the FilterExpressions are working, however, there are cases when they are not. The following two cases have been reported by users to be invalid.
For more information, you can check out the following Forum thread: GridDateTimeColumn filtering localization issues
As a last resort workaround, the FilterExpressions can be fixed by replacing the invalid date and boolean values and be used as an SQL query.
public
string
SqlFilterExpression
{
get
StringBuilder filterExpression =
new
StringBuilder();
foreach
(GridColumn column
in
RadGrid1.MasterTableView.RenderColumns)
if
(!column.SupportsFiltering())
continue
;
}
filterText = column.EvaluateFilterExpression();
(String.IsNullOrEmpty(filterText))
GridDateTimeColumn dateTimeColumn = column
as
GridDateTimeColumn;
(dateTimeColumn !=
null
&& dateTimeColumn.EnableRangeFiltering)
filterText = filterText.Replace(
","
,
" "
);
" True"
" 'True'"
).Replace(
" False"
" 'False'"
(filterExpression.Length > 0)
filterExpression.Append(
" AND "
filterExpression.AppendFormat(
"({0})"
, filterText);
return
filterExpression.ToString();
private
GetSqlFilterExpression(RadGrid grid)
grid.MasterTableView.RenderColumns)
Public
ReadOnly
Property
As
String
Get
Dim
filterExpression
StringBuilder =
New
StringBuilder()
For
Each
column
GridColumn
In
RadGrid1.MasterTableView.RenderColumns
If
Not
column.SupportsFiltering()
Then
Continue
End
filterText
= column.EvaluateFilterExpression()
.IsNullOrEmpty(filterText)
dateTimeColumn
GridDateTimeColumn = TryCast(column, GridDateTimeColumn)
dateTimeColumn IsNot
Nothing
AndAlso
dateTimeColumn.EnableRangeFiltering
)
filterExpression.Length > 0
, filterText)
Next
Return
filterExpression.ToString()
Function
GetSqlFilterExpressions(
ByVal
grid
RadGrid)
grid.MasterTableView.RenderColumns
Resources Buy Try