2011-01-13 5 views
0

내 프로젝트에 DataGrid가 있습니다. 크기가 맞지 않아서 scrollBar가 나타납니다. DataGrid는 초기 상태에서 몇 개의 열과 다음 열의 일부 (스크롤 한 후에 표시됨)를 표시합니다.잘린 표시된 열의 너비 가져 오기

어쨌든이 부분의 너비를 알 수 있습니까?

답변

0

좋아, 나는이 문제에 좀 더 깊이 파고 들었다. 일부 클래스를 검색하여 Adobe에서 이러한 그리드 동작 (부분적으로 열 표시)을 구현하는 방법을 살펴 보았습니다. 그래서,이 처리해야하는 사람들을 위해, 필요한 부분은 DataGrid.as 파일, 방법 configureScrollBars에 .. 사실,이 부분 :

// if the last column is visible and partially offscreen (but it isn't the only 
     // column) then adjust the column count so we can scroll to see it 
     if (collectionHasRows && rowCount > 0 && colCount > 1 && 
      listItems[0][colCount - 1].x + 
      visibleColumns[colCount - 1].width > (displayWidth - listContent.x + viewMetrics.left)) 
      colCount--; 
     else if (colCount > 1 && !collectionHasRows) 
     { 
      // the slower computation requires adding up the previous columns 
      var colX:int = 0; 
      for (var i:int = 0; i < visibleColumns.length; i++) 
      { 
       colX += visibleColumns[i].width; 
      } 
      if (colX > (displayWidth - listContent.x + viewMetrics.left)) 
       colCount--; 
     } 

거의 모든 코드입니다, 그 필요 그리드에서 까다로운 구분 된 열을 모두 잡아서 측정하십시오.

1

부모 개체의 너비를 가져야합니다.

다음 단계의 폭을 얻어야한다,의는 데이터 그리드 애플리케이션에 가정 해 봅시다. (stage.stageWidth를)

당신의 데이터 그리드 응용 프로그램의 특정 X 위치 (또는 다른 상위 개체에있는 경우) 다음 부모 개체의 너비 - DataGrid의 x 값을 가져와야합니다. (stage.stageWidth - dataGrid.x)

+0

답장을 보내 주셔서 감사합니다. 난 이미 자신에 의해 계산 생각 (글쎄, 조금 다른 방식으로 .. dataGridWidth % (visibleColumnsCount * columnWidth) 같은 것을). 이 값을 얻기 위해 미리 정의 된 속성이나 메서드가 있는지 궁금합니다. – Antenka

관련 문제