为某些列禁用类似于Excel的过滤功能 - Telerik C#Winforms

问题描述:

通过为RadGridView启用类似Excel的过滤功能,所有列都将有一个过滤按钮。我需要为某些特定列禁用Excel-Like filtering,并隐藏该列的Excel过滤按钮。这可能吗?为某些列禁用类似于Excel的过滤功能 - Telerik C#Winforms

我刚刚发现使用RadControlSpy,用于隐藏类似于Excel的过滤按钮的解决方案,我应该管理ViewCellFormatting事件是这样的:

private void gridShop_ViewCellFormatting(object sender, CellFormattingEventArgs e) 
{ 
    if (e.CellElement is GridHeaderCellElement && e.Column.Name == "IDCol") 
     (e.CellElement as GridHeaderCellElement).FilterButton.Visibility = ElementVisibility.Collapsed; 
} 

尝试的RadGridView访问儿童和Visibility属性更改为隐藏:

int columnIndex = 1; 
((Telerik.WinControls.UI.GridFilterButtonElement)(this.radGridView1.GetChildAt(0).GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(columnIndex).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Hidden; 

screenshot

在测试了:Telerik 2015visual studio 2013

记住:做使用此命令在初始化Form/GridView类似构造之前要么。

例如我使用它在形式负载:

private void RadForm1_Load(object sender, EventArgs e) 
{ 
    int columnIndex = 1; 
    ((Telerik.WinControls.UI.GridFilterButtonElement)(this.radGridView1.GetChildAt(0).GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(columnIndex).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Hidden; 
} 

下载样品project here