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

时间:2017-10-09 08:23:13

标签: c# winforms telerik radgridview

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

3 个答案:

答案 0 :(得分:1)

尝试访问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之前,执行 NOT 使用此命令。

例如我在表单加载时使用它:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

向下滚动到"启用类似Excel的过滤"描述