2012-11-14 2 views
0

다음 함수를 사용하여 데이터베이스에 항목을 추가 한 다음 데이터 격자로 돌아갑니다. 데이터 관리 방법은 PHP입니다. 내 문제는 데이터베이스가 새로운 데이터를 수신했지만 DataGrid에는 새 레코드가 없습니다.DataGrid가 새 행을 업데이트 할 수 없습니다.

여기 결과는 여전히 동일 I Serval의 디버깅 방법을합니다 (button_clickHandler에 댓글 기능) 시도 코드

<fx:Script> 
     <![CDATA[ 
      import mx.controls.Alert; 
      import mx.events.CloseEvent; 
      import mx.events.FlexEvent; 
      import mx.rpc.events.ResultEvent; 

      import spark.events.GridItemEditorEvent; 

      protected function dataGrid_creationCompleteHandler(event:FlexEvent):void 
      { 
       getAllUserResult.token = userService.getAllUser(); 

      } 


      protected function button_clickHandler(event:MouseEvent):void 
      { 

       var user:User = new User(); 

       user.idUser = parseInt(idUserTextInput.text); 
       user.userName = userNameTextInput.text; 
       user.password = passwordTextInput.text; 

       createUserResult.token = userService.createUser(user); 

       userService.commit(); 


       //getAllUserResult.token = userService.getAllUser(); 
       //dataGrid.invalidateDisplayList(); 

       //var e:FlexEvent; 
       //dataGrid_creationCompleteHandler(e); 

       //user.idUser=createUserResult.token.result as int; 
       //dataGrid.dataProvider.addItem(user); 

       this.currentState="State1"; 
      } 
    </fx:Script> 


<s:states> 
    <s:State name="State1"/> 
    <s:State name="Add"/> 
</s:states> 


    <fx:Declarations> 
     <s:CallResponder id="getAllUserResult"/> 
     <userservice:UserService id="userService" 
            fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" 
            showBusyCursor="true"/> 
     <valueObjects:User id="user"/> 
     <s:CallResponder id="createUserResult"/> 

    </fx:Declarations> 



<s:DataGrid id="dataGrid" includeIn="State1" x="95" y="10" width="961" height="505" 
       creationComplete="dataGrid_creationCompleteHandler(event)" editable="true" 
       gridItemEditorSessionSave="dataGrid_gridItemEditorSessionSaveHandler(event)" 
       requestedRowCount="4" > 
     <s:columns> 
      <s:ArrayList> 
       <s:GridColumn dataField="idUser" headerText="idUser"></s:GridColumn> 
       <s:GridColumn dataField="userName" headerText="userName"></s:GridColumn> 
       <s:GridColumn dataField="password" headerText="password"></s:GridColumn> 

      </s:ArrayList> 
     </s:columns> 
     <s:typicalItem> 
      <fx:Object idUser="idUser1" Name="Name1" password="password1"></fx:Object> 
     </s:typicalItem> 
     <s:AsyncListView list="{getAllUserResult.lastResult}"/> 
    </s:DataGrid> 

    <s:Button id="button" includeIn="Add" x="695" y="407" label="CreateUser" 
       click="button_clickHandler(event)"/> 


    <s:Form includeIn="Add" x="74" y="21" width="343" height="362"> 
      <s:FormItem width="200" label="IdUser"> 
       <s:helpContent > 
        <s:VGroup> 
         <s:Label width="76" height="42" text="Auto Generate"></s:Label> 
        </s:VGroup> 
       </s:helpContent> 
       <s:Label id="idUserTextInput" text="{user.idUser}"/> 
      </s:FormItem> 
      <s:FormItem label="UserName" required="true"> 
       <s:TextInput id="userNameTextInput" text="{user.userName}"/> 
      </s:FormItem> 
      <s:FormItem label="Password" required="true"> 
       <s:TextInput id="passwordTextInput" text="{user.password}"/> 
      </s:FormItem> 

    </s:Form> 

의 단순화 버전이지만.

내가 시도 할 수있는 다른 방법은 ??

답변

0

당신은 상쾌한 dataprovider를 시도 했습니까?

+0

"//getAllUserResult.token = userService.getAllUser();"가 있습니다. 노력하지 않은 방법입니다. – Samuel

관련 문제