对某些列禁用类似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的筛选”以获取说明