【问题标题】:Infragisitcs ultrawingrid columnchooser and column filtersInfragisitcs ultrawingrid 色谱柱选择器和色谱柱过滤器
【发布时间】:2011-03-03 12:11:19
【问题描述】:

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

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

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

我已经看过但找不到这样做的方法。有什么想法吗?

【问题讨论】:

    标签: c# .net winforms infragistics ultrawingrid


    【解决方案1】:

    当列被隐藏时,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();
                }
           }
       }
    {
    

    笨拙,但它有效。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,我知道如何编码.. 你有 Ultrawingrid 的具体例子吗?我在哪里处理列隐藏?哪个活动?我看不到被解雇的那个。
      • 据我所知,这不是事件,但是当用户在列选择器中选择一列时,属性 (.Hidden) 会发生变化,如果将属性绑定到对象,则可以处理显示/隐藏列
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2020-09-24
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多