2014-03-27 2 views
0

사용자가 그리드에서 특정 열을 숨기지 못하도록하는 방법을 찾고 있습니다. - 그리드 그냥 메뉴 항목을 렌더링 할 때GXT 그리드의 숨기기 불가능한 열

... 
for (Component menuItem : menu.getItems()) { 
    String text = ((MenuItem) menuItem).getText(); 
    if (((MenuItem) menuItem).getSubMenu() != null && (text.equals("Columns"))) { 
     for (Component subMenuItem : ((MenuItem) menuItem).getSubMenu().getItems()) { 
      String subMenuItemText = ((MenuItem) subMenuItem).getText(); 
      if (<i want this column to be not hidable>) { 
       subMenuItem.disable(); 
      } 
     } 
    } 
} 
...   

을 거의 작동 : 내-hidable하지 컬럼에 관련된 하위 메뉴 항목을 찾아 그들에 disable() 전화를 어디 GridViewMenu createContextMenu(final int colIndex) 메소드를 오버라이드 (override)하려고했다 비활성화 한 사용자는 회색으로 표시되며 사용자의 의견을 수락하지 않습니다. 그러나 다른 모든 컬럼은 중단 된 후에도 중단됩니다. 갑자기 비활성화 된 메뉴 항목이 활성화됩니다.

GXT 2.2.6을 사용하고 있습니다.

감사합니다.

답변

0

이 문제의 이유가 있습니다. 열의 모든 변경 사항은 GXT 리스너를 호출하고 결국 GridView의 restrictMenu 메소드가 호출됩니다. 이렇게하면 내 모든 비활성화 설정이 무시됩니다. 해결책은 사용자 정의 리스너를 추가하여 GXT '리스너가 작업을 수행 한 다음 활성화/비활성화 설정을 덮어 쓰는 것입니다.