对某些列禁用 Excel-Like 过滤 - Telerik C# Winforms

Disable Excel-Like filtering for Some columns - Telerik C# Winforms

通过为 RadGridView 启用 Excel-Like 过滤,所有列都会有一个过滤按钮。我需要禁用某些特定列的 Excel-Like filtering 并隐藏该列的 excel 过滤按钮。这可能吗?

尝试访问 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;

测试时间: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;
}

我刚刚找到了使用 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,您可以将其设置为真或假。

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

https://docs.telerik.com/devtools/winforms/gridview/filtering/excel-like-filtering

向下滚动到 "Enabling Excel-like filtering" 以获得描述