2012-03-14 4 views
0

난 내 스파크 데이터 그리드에의 dataProvider를 추가 오류가 있습니다플렉스 스파크 데이터 그리드

Multiple initializers for property 'dataProvider'. (note: 'dataProvider' is the default property of 'spark.components.DataGrid'). 

내 데이터가 s:httpService 선언에서 내가이

<s:DataGrid includeIn="formState" x="348" y="57" width="287" dataProvider="{myHttpService}"> 
    <s:columns> 
     <s:ArrayList> 
      <s:GridColumn dataField="data1" headerText="Data Field 1"></s:GridColumn> 
      <s:GridColumn dataField="data2" headerText="Data Field 2"></s:GridColumn> 
      <s:GridColumn dataField="data3" headerText="Data Field 3"></s:GridColumn> 
     </s:ArrayList> 
    </s:columns> 
    <s:typicalItem> 
     <fx:Object dataField1="Sample Data" dataField2="Sample Data" dataField3="Sample Data"></fx:Object> 
    </s:typicalItem> 
    <s:ArrayList> 
     <fx:Object data1="data1" data2="data1" data3="data1"></fx:Object> 
     <fx:Object data1="data2" data2="data2" data3="data2"></fx:Object> 
     <fx:Object data1="data3" data2="data3" data3="data3"></fx:Object> 
     <fx:Object data1="data4" data2="data4" data3="data4"></fx:Object> 
    </s:ArrayList> 
</s:DataGrid> 

와 같은 데이터 그리드 뭔가에 넣어 내 HTTP 서비스는 다음과 같습니다.

<s:HTTPService id="myHttpService" url="http://host.com/mydata.php"/> 
+0

는 ArrayList를 같은 {myHttpService로의 dataProvider를보십시오 } –

답변

3

코드에서 부주의로 dataProvider를 두 번 지정합니다. 나는 생각한다.

처음으로 태그의 속성으로이 행에 지정됩니다.

<s:DataGrid includeIn="formState" x="348" y="57" width="287" dataProvider="{myHttpService}"> 

가이 블록의 데이터 그리드의 자식으로 지정된 두 번째 시간 :

<s:ArrayList> 
    <fx:Object data1="data1" data2="data1" data3="data1"></fx:Object> 
    <fx:Object data1="data2" data2="data2" data3="data2"></fx:Object> 
    <fx:Object data1="data3" data2="data3" data3="data3"></fx:Object> 
    <fx:Object data1="data4" data2="data4" data3="data4"></fx:Object> 
</s:ArrayList> 

당신은 두 경우 모두에서의 dataProvider를 지정할 수 없습니다.

또한 코드에서 myHttpService를 dataProvider (첫 번째 줄)로 사용하고 있다고 추가합니다. myHttpService 호출의 결과를 dataProvider로 사용하려고합니다. 실제 myHttpService 객체는 아닙니다.

나는 개념적으로 같은, 당신이 원하는 경우 내 취향이 결과를 처리 다루는 공식적인 결과 핸들러를 가지고있다가 당신이 myHttpService.lastResults에 바인딩 할 수 있으리라 생각합니다 :

<s:HTTPService id="myHttpService" url="http://host.com/mydata.php" result="onMyResult(event)"/> 

protected function onMyResult(event:ResultEvent):void{ 
    this.myDataGrid.dataProvider = new ArrayCollection(event.results as Array); 
} 
+1

나는 지금, 나는 이해한다. 그것을 명확하게하기를위한 감사합니다! 좋은 대답 – Jorge

관련 문제