为某些列禁用类似于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;
在测试了:Telerik 2015
,visual 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。