我有一个Infragistics UltraWinGrid,我正在使用它的内置列选择器。
但是,如果用户在特定列上有过滤器,然后隐藏该列,则过滤器仍会应用于数据。
我希望如果列被隐藏,那么它的过滤器应该不再适用或者我应该至少能够以某种方式设置它。
我看了,找不到这样做的方法。有什么想法吗?
答案 0 :(得分:2)
隐藏列时,会触发UltraWinGrid.AfterColPosChanged
事件。事件参数不会告诉您哪个列的位置已更改(即隐藏),因此最简单的方法是迭代列并清除任何隐藏列的过滤器。
private void grid_AfterColPosChanged(object sender, AfterColPosChangedEventArgs e)
{
foreach (UltraGridBand band in grid.DisplayLayout.Bands)
{
foreach (ColumnFilter filter in band.ColumnFilters)
{
if (filter.Column.Hidden)
{
filter.ClearFilterConditions();
}
}
}
{
笨拙,但它确实有效。
答案 1 :(得分:-2)
处理列隐藏;只需将Column.Hidden
绑定到您的对象并执行您需要做的任何事情。