2

我有一个 Infragistics UltraWinGrid,我正在使用它的内置列选择器。

但是,如果用户在特定列上有过滤器,然后隐藏该列,则过滤器仍会应用于数据。

我希望如果该列被隐藏,那么它的过滤器应该不再适用,或者我至少应该能够以某种方式设置它。

我已经看过并且找不到这样做的方法。有任何想法吗?

4

2 回答 2

2

隐藏列时,将UltraWinGrid.AfterColPosChanged触发该事件。事件参数不会告诉您哪个列的位置已更改(即hidden),因此最简单的方法是遍历列并清除任何隐藏列的过滤器。

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();
            }
       }
   }
{

笨重,但它的工作原理。

于 2011-03-04T14:28:41.667 回答
-2

处理列隐藏;只需绑定Column.Hidden到您的对象并做您需要做的任何事情。

于 2011-03-03T13:03:44.657 回答