【发布时间】:2016-02-17 11:14:51
【问题描述】:
在我的 RadGrid 中,我使用的是 FilterType="Combined",并且我正在使用 FilterCheckListItemsRequested 方法绑定过滤器下拉列表。我的代码如下所示:
protected void rgCallRecordings_FilterCheckListItemsRequested(object sender, GridFilterCheckListItemsRequestedEventArgs e)
{
// Get the list of calls stored in session
var results = (IQueryable<DC_CR_RECORDING>)Session["CallRecordings"];
// Get the column name
string dataField = (e.Column as IGridDataColumn).GetActiveDataField();
// Get the filter expression of the grid
string filterExpression = rgCallRecordings.MasterTableView.FilterExpression;
// Initialise new list
IEnumerable<DC_CR_RECORDING> DistinctList = new List<DC_CR_RECORDING>();
// Depending on which column it is change the data output.
switch (dataField)
{
case "SCRIPT_AGENT":
// Seperate the script agents from the call recordings
DistinctList = results.GroupBy(s => s.SCRIPT_AGENT).Select(group => group.First());
break;
case "CLIENT_NAME":
// Seperate the Client name from the call recordings
DistinctList = results.GroupBy(s => s.CLIENT_NAME).Select(group => group.First());
break;
case "CLIENT_REF_NUMBER":
// Seperate the Client name from the call recordings
DistinctList = results.GroupBy(s => s.CLIENT_REF_NUMBER).Select(group => group.First());
break;
case "CLIENT_LINK_REF":
// Seperate the Client link reference from the call recordings
DistinctList = results.GroupBy(s => s.CLIENT_LINK_REF).Select(group => group.First());
break;
case "SCRIPT_TYPE":
// Seperate the call direction from the call recordings
DistinctList = results.GroupBy(s => s.SCRIPT_TYPE).Select(group => group.First());
break;
case "SCRIPT_RESULT":
// Seperate the call direction from the call recordings
DistinctList = results.GroupBy(s => s.SCRIPT_AGENT).Select(group => group.First());
break;
}
每次应用新过滤器时,我都会尝试更新过滤器选项,因此选项列表仅显示过滤后网格中存在的项目。我尝试在应用过滤器时获取过滤器表达式,但我不确定如何将其应用于结果集。
【问题讨论】:
标签: c# asp.net telerik telerik-grid radgrid