2013-09-16 1 views
0

rss 문자열로 작업해야합니다. 기본적으로 그리드의 데이터로 작업해야합니다.스파크 DataGrid에서 값을 생성 완료시 레이블로 표시

나는 DataGrid의 변경 처리기에서 다음과 같은 기능을 가지고 있습니다. 즉, 항목을 클릭하면 선택된 데이터 필드 행이 아래에 표시된대로 라벨에 바인딩됩니다. 즉, 아래에 표시된대로 라벨에 바인딩됩니다.

protected function dg_selectionChangeHandler(event:GridSelectionEvent):void 
{    
      const eventGrid:Grid = event.currentTarget.grid; 
      var currentIndx:int = eventGrid.selectedIndex; 
      var currentDataItem:Object = eventGrid.selectedItem; 
      selIndex.text = String(currentIndx); 
      txtSource.text = String(currentDataItem.link);    
      txtSource.visible = false; 
      HttpGetUrl(txtSource.text); 
} 

그리드의 항목을 선택할 때마다 행 값을 내가 정의한 레이블에 바인딩합니다.

DataGrid가 처음으로 초기화 될 때 값이 채워지지 않거나 DataGrid가 처음 화면에 나타날 때 해당 행의 값이 selectedindex = 0 일 때 레이블에 채워지지 않습니다.

protected function dg_creationCompleteHandler(event:FlexEvent):void 
{    
      const eventGrid:Grid = event.currentTarget.grid; 
      var currentIndx:int = eventGrid.selectedIndex; 
      var currentDataItem:Object = eventGrid.selectedItem; 
      selIndex.text = String(currentIndx); 
      txtSource.text = String(eventGrid.selectedItem.link); 
      txtSource.visible = true; 
} 

및 데이터 그리드에 대한 코드는 다음과 같습니다 :

<s:DataGrid id="dgNews" x="10" y="70" width="300" height="623" click="dg_clickHandler(event)" color="#000000" visible="true" horizontalScrollPolicy="off" 
      variableRowHeight="true" selectionChange="dg_selectionChangeHandler(event)" creationComplete="dg_creationCompleteHandler(event)" selectedIndex="0"> 
    <s:columns> 
     <s:ArrayList>    
      <s:GridColumn dataField="title" headerText="Title" width="300"/> 
     </s:ArrayList> 
    </s:columns> 
</s:DataGrid> 

사람이 라벨에 기본 selectedIndex의 = 0 값을 바인딩하는 방법을 얘기 할 수 아래 그림과 같이 해당 값 데이터 그리드는 처음으로 코드를 초기화 할 때 나는 정의 하는가?

답변

0

이 경우 바인드되지 않습니다 ... 일부 텍스트 입력에 선택한 행의 일부 값을 지정하는 중입니다 ... 바인딩을 사용하면 DataGrid와 귀하의 케이스에있는 다른 구성 요소 입력 사이에 약간의 접착제가 생깁니다. To 다음과 같이해야합니다 :

<s:TextInput text="{dgNews.selectedItem.link}"/> 

이렇게하면 입력이 모눈의 선택된 행 값에 바인딩됩니다.

그리드가 생성 될 때 데이터 프로 바이더의 데이터를 아직 취하지 않았다는 것을 의미하는 것은 아니지만 선택한 행이 없으므로 ... 그럴 필요가 없습니다. 이벤트 리스너 바인딩이이를 처리 할 것입니다. 선택 이벤트가 필요하지도 않은이 방식도 마찬가지입니다 ...

이 단어 일부는 mxml이며 사용자가 처리하지 않는 textinput 샘플의 방식입니다 모든 기능.

데이터가 도착할 때 첫 번째 행을 선택하려면 해당 이벤트를 처리하고 그리드의 선택된 인덱스를 설정하면됩니다.