【发布时间】:2018-03-20 09:21:30
【问题描述】:
通过为RadGridView 启用类似 Excel 的过滤,所有列都会有一个过滤按钮。我需要为某些特定列禁用 Excel-Like filtering 并隐藏该列的 excel 过滤按钮。这可能吗?
【问题讨论】:
标签: c# winforms telerik radgridview
通过为RadGridView 启用类似 Excel 的过滤,所有列都会有一个过滤按钮。我需要为某些特定列禁用 Excel-Like filtering 并隐藏该列的 excel 过滤按钮。这可能吗?
【问题讨论】:
标签: c# winforms telerik radgridview
尝试访问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;
}
【讨论】:
我刚刚找到了使用 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;
https://docs.telerik.com/devtools/winforms/gridview/filtering/excel-like-filtering
向下滚动到“启用类似 Excel 的过滤”以获取说明
【讨论】: