Доступ к значению DataField в Itemrenderer при отправке в базу данных
Я действительно застрял на этом. Я настроил Itemrenderer в Datagrid, который управляет 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);
}
}
Я бы подумал, что могу получить доступ к значению из itemrenderer, используя свойство dataField, как и другие элементы, хотя они не являются itemrenderers, но trace(item.datf) просто возвращает "undefined". Я использую неправильный синтаксис?
Брайан
1 ответ
В вашем itemRenderer нет функции, которая передает данные обратно в объект данных. Однако DateField реализует IDataRenderer и IDropInListItemRenderer, поэтому я подозреваю, что это будет работать так, как ожидается, если вы удалите оболочку GridItemRenderer. Похоже, что они удалили labelFunction из сетки данных spark (как ни странно, она имеет функцию dataTipFunction), поэтому вам, вероятно, потребуется немного расширить DateField так же, как вы расширили GridItemRenderer, чтобы он работал.
Отредактируйте, чтобы ответить на следующий вопрос. Посмотрите, что является заменой для labelFunction в Spark DataGrid?