对某些列禁用类似Excel的筛选-Telerik C#Winforms

对某些列禁用类似Excel的筛选-Telerik C#Winforms,c#,winforms,telerik,radgridview,C#,Winforms,Telerik,Radgridview,通过为RadGridView启用类似Excel的筛选,所有列都将有一个筛选按钮。我需要对某些特定列禁用类似Excel的过滤功能,并隐藏该列的Excel过滤按钮。这可能吗?尝试访问RadGridView的子级,并将可见性属性更改为隐藏: int columnIndex = 1; ((Telerik.WinControls.UI.GridFilterButtonElement)(this.radGridView1.GetChildAt(0).GetChildAt(0).GetChildAt(2).

通过为
RadGridView
启用类似Excel的筛选,所有列都将有一个筛选按钮。我需要对某些特定列禁用类似Excel的过滤功能,并隐藏该列的Excel过滤按钮。这可能吗?

尝试访问
RadGridView
的子级,并将
可见性
属性更改为隐藏:

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;

测试日期:
Telerik 2015
visual studio 2013

记住:在初始化表单/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;
}

我刚刚使用
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;
}

在当前版本中,有一个列属性AllowFiltering,您可以将其设置为true或false

this.RadGridView1.Columns["MeetingNumber"].AllowFiltering = false;

向下滚动至“启用类似Excel的筛选”以获取说明