2014-12-30 1 views
-1

저는 Datagrid를 만들고, 스크롤 할 때 필요한 열과 많은 데이터를 제공하며, 데이터 항목은 가로로 스크롤해야하는 너무 넓은 문자열입니다. 나는 또한 클릭 리스너 메소드를 제공한다.DataGridSkin의 눈금이 dataGrid보다 큽니다.

문제는 내가 데이터 격자 아래를 클릭해도 여전히 클릭 방식을 실행한다는 것입니다. 나는 click 메서드의 이벤트에서 대상을 확인하고 "그리드"(DataGridSkin의 그리드)를 말합니다.

기본적으로 스킨의 "그리드"는 가로와 세로로 넓습니다. 높이와 너비를 나타내는 모든 소품이 정상적인 높이와 너비를 가지고 있다고 말하더라도 데이터입니다.

문제는 "그리드"가 모든 마우스 이벤트를 가로 채서 dataGrid 아래의 모든 버튼을 쓸모 없게 만드는 것입니다.

그리드에서 maxHeight/Width 설정을 시도했지만 도움이되지 않습니다.

Spark에서 오류가 발생 했나요?

편집 : 방금 문제가 좀 더 구체적인 것으로 나타났습니다.

주 app.mxml에는 거대한 뷰 스택이 있고 그 아래에 버튼이있는 막대가 있습니다. viewStack의 navigatorContent는 모두 내 앱의 다른보기이며 view를 변경하는 것은 단순히 viewStack의 현재 selectedItem을 변경하는 것입니다.

문제가있는 DataGrid는 현재보기의 모든 구성 요소에 영향을 미치지 않지만 (빈 공간에서 직접 클릭 이벤트를 보내면 계속 클릭 이벤트가 발생 함) 바의 버튼에 대한 모든 마우스 이벤트를 차단합니다. 메인 app.mxml.

<s:BorderContainer borderVisible="false" backgroundAlpha="0.5" bottom="0" visible="{mainViewStack.selectedIndex > 0}" width="100%"> 
    <s:layout> 
     <s:HorizontalLayout verticalAlign="middle" paddingLeft="40" paddingRight="40" paddingBottom="0"> 
     </s:HorizontalLayout> 
    </s:layout> 
    <s:Label right="60" fontSize="25" color="white" text="some text"/> 
    <s:Label right="60" fontSize="12" paddingTop="3" color="white" id="lblVersion"/> 
    <s:Spacer width="100%" /> 

    <s:Image id="img_Back" buttonMode="true" click="img_back_clickHandler(event)" 
      source="@Embed(source='assets/images/undo.png')" toolTip="zurück"/> 
    <s:Image id="img_settings" buttonMode="true" 
      source="@Embed(source='/assets/images/gears.png')" toolTip="Einstellungen" /> 
    <s:Image id="img_logout" buttonMode="true" click="img_logout_clickHandler(event)" 
      source="@Embed(source='assets/images/window_key.png')" toolTip="ausloggen"/> 
    <s:Image id="img_newWindow" buttonMode="true" click="img_newWindow_clickHandler(event)" 
      source="@Embed(source='assets/images/window_key.png')" toolTip="Neues Fenster"/> 

</s:BorderContainer> 

<mx:ViewStack id="mainViewStack" left="0" right="0" top="0" bottom="60" selectedIndex="0" change="mainViewStack_changeHandler(event)" > 
    <s:NavigatorContent label="someView" backgroundColor="#707572"> 
     <someView id="someView"/> 
    </s:NavigatorContent> 

    <s:NavigatorContent label="someView" backgroundColor="#707572"> 
     <someView id="someView"/> 
    </s:NavigatorContent> 

    <s:NavigatorContent label="someView" backgroundColor="#707572"> 
     <someView id="someView"/> 
    </s:NavigatorContent> 
</mx:ViewStack> 

그 전망의 내가 위에서 언급 한 것처럼 물건을 수행하는 데이터 그리드를 가지고 있다면, 그것은 어떤을 차단합니다 (그것 정말 큰 때문이 아니라 정확한 코드) :

이것은 같은 모습입니다 borderContainer의 버튼에 대한 mouseEvents입니다.

<s:DataGrid id="tableList" width="200" height="100%" doubleClickEnabled="true" doubleClick="createSelectStatement(event)" > 
      <s:columns> 
       <s:ArrayList> 
        <s:GridColumn labelFunction="tableLabelFunction" headerText="Tables"/> 
       </s:ArrayList> 
      </s:columns> 
     </s:DataGrid> 
+0

코드를 표시하십시오. 그것이 없으면 아무도 도울 수 없게됩니다. 그것은 스파크 구성 요소의 문제처럼 들리지 않습니다. – Brian

+0

@Brian 업데이트 된 질문보기 –

답변

0

OK, 난 그냥 내 문제에 대한 해결책을 발견, 당신은 단순히 borderContainer 깊이 = "2"하고는, ViewStack 깊이 = "1"과 borderContainer에 대한 MouseEvent는 절편 늘 데이터 그리드를주고, 그 여전히 꾸물 거리지 왜 처음에 그렇게해야만 했지?

저는 여러분, DataGrid가 도청 당했고, 직접 시도하고, 데이터 그릿을 만들고, 일부 열에 데이터를 제공하고, 스크롤 할 수있는 많은 데이터와 클릭 이벤트를줍니다. 배경으로 데이터 그리드 아래를 클릭하면 여전히 클릭 이벤트가 실행됩니다.

관련 문제