2011-02-04 4 views
0

처음 플렉스 프로젝트라고 말하면서 많은 것을 배우고 많이 배웠지 만, 아직도이 작업을하기 위해 애 쓰고 있습니다.Flex 4 : Dataprovider에 바인딩 레이블

Flex 모바일 응용 프로그램 내에서 SQLite 데이터베이스의 레코드를 표시하려고합니다. 나는 데이터를 데이터베이스에 올바르게 저장하는 입력 폼을 가지고 있으며, 레코드를 출력하는 DataGrid를 가지고 있으므로 모든 것이 잘되어 있는지 확인할 수있다. 그러나, 내 문제는 데이터를 읽을 수 있도록 만드는 것입니다.

사용자가 드롭 다운 또는 목록에서 식별자를 선택할 수 있기를 원합니다 (단 1 열의 DataGrid 일지라도). 해당 정보를 반영하도록 오른쪽에 레이블을 지정하십시오.

<mx:DataGrid x="10" y="10" width="100" height="500" id="SiteSelector" dataProvider="{siteData}" includeIn="SiteDetails" change="SiteChoice(event)"> 
    <mx:columns> 
     <mx:DataGridColumn headerText="Site Name" dataField="SiteName" /> 
    </mx:columns> 
</mx:DataGrid> 

DataGrid를 데이터베이스에서 문제없이 사이트 이름을 보여줍니다

내 생각과 같은 데이터 그리드 설정을하는 것이 었습니다. 변경 기능 :

  private function SiteChoice(event:ListEvent):void 
     { 
      var statement:SQLStatement = new SQLStatement(); 
      statement.sqlConnection = connection; 
      statement.text = "SELECT * FROM SITES WHERE SITE_ID = ?" 
      statement.parameters[0] = SiteSelector.selectedItem.SITE_ID; 
      statement.execute(); 
      siteDetails.source = statement.getResult().data; 
     } 
나는 또한 선언 한

:

[Bindable] private var siteDetails:ArrayCollection = new ArrayCollection(); 

내 질문은, 어떻게 테이블에서 특정 컬럼 데이터를 반영하기 위해 레이블을받을 수 있나요입니까? 데이터 공급자로 siteDetails를 연결한다고 생각합니다. 예를 들어 주소 또는 사이트 연락처가 레이블에 표시되도록 지정하려면 어떻게해야합니까?

<s:Label text="{siteDetails}" id="ExternalIPLBL"/> 

내가 지난 주에 꽤 많이 구글과 어도비 개발자 연결/LiveDocs의/요리 책을 검색하고 여전히 작동하는 솔루션을 함께 와서 아직했습니다.

+0

siteDetails는 ArrayCollection에이기 때문에, 당신은 당신이 레이블이있는 ArrayCollection에서 항목의 필드를 보여주는 각 인스턴스와 반복하려는 의미합니까? –

+0

나는 @ Frank의 대답에 동의한다. 또한 ArrayCollection을 레이블의 dataProvider로 사용하면 안됩니다. 목록 유형 항목에 대한 데이터 제공자로 ArrayCollection을 사용합니다. 결과를 얻으면 siteDetails AC를 단계별로 실행 한 다음 siteDetails 값을 기반으로 레이블 텍스트 값을 설정합니다. – Ryan

답변

1

이 시도 : 제 , 당신의 getItemAt (0) 값이이 필드

siteDetails.getItemAt(0).Street} 

동적 같은 arraycollectiokn 형성 표시 할 수있다. 클릭 핸들러를 DataGrid에 등록하고 이벤트를 디버깅하십시오. 그곳의 어딘가에서 selectedIndex는 그 이벤트의 일부입니다. 그런데

, ID는 소문자로 시작한다 -> ExternalIPLBL

이벤트 핸들러에 브레이크 포인트가 찾으려고 설정, 데이터가 (selectedIndex의)이며, 이벤트 핸들러의 레이블 텍스트를 설정 여기서 ExternalIPLBL.text = event.selectedIndex [Street].

BR 프랭크