我真的坚持这个。我在Datagrid中设置了一个Itemrenderer来管理DateField。用户可以直接在数据网格中输入日期和其他值。当他们点击“提交”时,我想填充数据库中的一行,并为此设置了一个服务。在数据库中创建一行,其中包含数据网格中的所有值,但是尽管用户输入了值,但不会填充日期。以下是代码段:
的Datagrid
<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中的值,就像我对其他项一样,尽管这些不是itemrenderers,但trace(item.datf)只返回'undefined'。我使用了错误的语法吗?
布赖恩
答案 0 :(得分:0)
itemRenderer中没有将数据传回数据对象的函数。但是,DateField实现了IDataRenderer和IDropInListItemRenderer,因此我怀疑如果删除GridItemRenderer包装器,这将按预期工作。看起来他们已经从spark datagrid中删除了labelFunction(奇怪的是,它有一个dataTipFunction),所以你可能需要稍微扩展DateField以扩展GridItemRenderer以使其工作。
编辑以回答What is the replacement for labelFunction in Spark DataGrid?
的更多问题