저는이 문제에 정말로 고심하고 있습니다. DateField를 관리하는 Datagrid에 Itemrenderer를 설정했습니다. 사용자는 날짜 및 기타 값을 직접 DataGrid에 입력 할 수 있습니다. 그들이 '제출'을 클릭하면 데이터베이스에 행을 채우고 싶습니다.이 서비스를 설정했습니다. 행은 예상대로 데이터 그리드의 모든 값을 사용하여 db에 작성되지만 사용자가 값을 입력 했음에도 불구하고 날짜가 채워지지 않습니다.데이터베이스에 제출할 때 Itemrenderer의 DataField 값에 액세스하십시오.
<s:GridColumn dataField="datf" headerText="Period From" rendererIsEditable="true">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer dataChange="updateRenderer()">
<fx:Script>
<![CDATA[
public function updateRenderer():void {
periodFrom.text = outerDocument.dtf1.format(data.datf);
}
private function dateField_labelFunc(item:Date):String {
return outerDocument.dtf1.format(item);
}
]]>
</fx:Script>
<mx:DateField horizontalCenter="0" verticalCenter="0" width="90%" id="periodFrom" labelFunction="dateField_labelFunc"/>
</s:GridItemRenderer>
</fx:Component>
처리기
protected function createBillResult_resultHandler(event:ResultEvent):void
{
var dataProvider = itemsDg.dataProvider;
var item = null;
for (var i:int = 0; i < dataProvider.length; i++){
item = dataProvider.getItemAt(i);
trace(item.datf);<!--WHAT SHOULD GO HERE-->
billItems.lnid = item.lnid;
billItems.days = item.days;
billItems.ratu = item.ratu;
createBillItemsResult.token = billingService.createBillItems(billItems);
}
}
나는 내가 같은 DataField 속성을 사용하여의 itemRenderer의 값에 액세스 할 수 있다고 생각했을 것이다
에서 Datagrid : 다음은 코드입니다 이들은 itemrenderers가 아니지만 다른 항목들과 함께 할 수 있지만 trace (item.datf)는 'undefined'를 반환합니다. 잘못된 구문을 사용하고 있습니까?
브라이언
감사 에이미에서 추가 질문보고 응답합니다. 죄송합니다. 데이터를 데이터 객체로 다시 전송하는 함수를 포함하도록 원래 코드를 편집했습니다. GridItemRenderer 래퍼를 제거하면 함수 updateRenderer을 사용하여 데이터를 바인딩하는 방법은 무엇입니까? 어쨌든, 계속 놀아서 알려 드리겠습니다. – user1753640