2012-09-09 2 views
0

Windows Forms 용 UltraWin Grid 12 (Infragistics) (vb.net 2010 Framework 3.5)를 사용하고 있습니다.UltraGrid Win 필터가없는 경우 모든 행 숨기기

모든 행을 숨기고 필터링 된 행만 표시하는 방법이 있습니까? 필터를 선택하지 않으면 아무것도 표시하지 않아야하며 모든 필터를 선택 취소하면 모든 행이 다시 숨겨집니다.

For Each ... row.hidden = true,하지만 행운을 시도했습니다.

+0

필터링이 그리드 필터링 또는 외부에서 수행되고 있습니까? – alhalama

+0

내부적으로 헤더 필터 행을 사용합니다. 내 생각은 필터링 된 행만 표시하는 것입니다. 그러나 시작시 Ultrawin 표가 데이터로 가득 찼습니다. – Jaxedin

답변

0

당신은 모든 행을 숨길 무승부 필터를 사용할 수 있습니다

:

public class HideRowsDrawFilter:IUIElementDrawFilter 
{ 
    private UltraGrid grid; 
    public HideRowsDrawFilter(UltraGrid grid) 
    { 
     this.grid = grid; 
    } 

    public bool DrawElement(DrawPhase drawPhase, ref UIElementDrawParams drawParams) 
    { 
     if (this.grid.DisplayLayout.Rows.GetFilteredOutNonGroupByRows().Length == 0) 
      return true; 
     return false; 
    } 

    public DrawPhase GetPhasesToFilter(ref UIElementDrawParams drawParams) 
    { 
     if (drawParams.Element is RowUIElement) 
      return DrawPhase.BeforeDrawElement; 
     return DrawPhase.None; 
    } 
} 

그리드의 무승부 필터를 설정하려면 다음을 사용

this.ultraGrid1.DrawFilter = new HideRowsDrawFilter(this.ultraGrid1); 

행의 그리기를 막을 뿐이며 여전히 행을 유지하므로 다른 방법으로 사용 중지하지 않으면 선택, 편집 및 활성화가 계속 발생합니다.

0

그냥 기본 크기를 0으로 설정 하시겠습니까?

myGrid.Rows.DefaultSize = 0 
    myGrid.Refresh() 

그리고 필 요한 필터를 얻었 으면 나중에 행을 추가하십시오. 선택을 취소하면 기본 크기를 다시 입력하십시오. 필터링되는 어떤 존재하지 않을 때

+0

Ultrawin 그리드에 DefaultSize가 없기 때문에 Row.Height = 0을 시도했지만 행운은 없습니다. – Jaxedin

+0

키 누르기에서 나중에 채우고 싶을 때 왜 채우고 있습니까? – deltu100