1

私は本当にこれにこだわっています。DateField を管理する Datagrid に Itemrenderer をセットアップしました。ユーザーは、日付やその他の値をデータグリッドに直接入力できます。「送信」をクリックすると、データベースに行を入力したいので、そのためのサービスをセットアップしました。期待どおりにデータグリッドからのすべての値を含む行がデータベースに作成されますが、ユーザーが値を入力したにもかかわらず日付が入力されません。以下はコード スニペットです。

データグリッド

<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);
            }
        }

これらはitemrendererではありませんが、他のアイテムと同じようにdataFieldプロパティを使用してitemrendererから値にアクセスできると思っていましたが、trace(item.datf)は単に「未定義」を返します。間違った構文を使用していますか?

ブライアン

4

1 に答える 1

0

itemRenderer に、データをデータ オブジェクトに戻す関数がありません。ただし、DateField は IDataRenderer と IDropInListItemRenderer を実装しているため、GridItemRenderer ラッパーを削除すると、これが期待どおりに機能するのではないかと思います。彼らはspark datagridからlabelFunctionを削除したようです(奇妙なことに、dataTipFunctionがあります)ので、GridItemRendererを拡張した方法でDateFieldを少し拡張して機能させる必要があります。


編集してさらに質問に答えるには、Spark DataGrid の labelFunction の代替とは何ですか? を参照してください。

于 2012-10-17T17:40:56.860 に答える