У меня есть DataGrid в Flex, с одним столбцом флажок и другое числовое значение. При щелчке по флажку числовое значение должно измениться, либо на 0, если флажок не выбран, либо заданное минимальное значение, если установлен флажок. Вот код, у меня есть:Flex DataGrid: изменить значение на основе другого значения?
<mx:DataGrid x="0" y="45" width="272" height="525" dataProvider="{dp}" variableRowHeight="true" editable="true" id="equipmentDG" verticalAlign="middle">
<mx:columns>
<mx:DataGridColumn headerText="" headerStyleName="gridheader" width="20" dataField="included" editorDataField="selected" rendererIsEditor="true">
<mx:itemRenderer>
<fx:Component>
<mx:CheckBox click="handleClicks(event)">
<fx:Script>
<![CDATA[
public function handleClicks(event:MouseEvent):void
{
data.included = !data.included;
if(data.included && data.antal == 0)
data.antal = data.minNo;
else if(!data.included)
data.antal = 0;
}
]]>
</fx:Script>
</mx:CheckBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Antal" headerStyleName="gridheader" width="40" dataField="antal" editorDataField="value" editable="true">
<mx:itemEditor>
<fx:Component>
<mx:NumericStepper stepSize="1" width="35" height="20" focusOut="numericstepper1_changeHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.NumericStepperEvent;
override public function set data(value:Object):void
{
super.data = value;
if (value && value.hasOwnProperty("minNo"))
minimum = value.minNo;
if (value && value.hasOwnProperty("maxNo"))
maximum = value.maxNo;
}
protected function numericstepper1_changeHandler(event:Event):void
{
if(data.antal > 0)
data.included = true;
else
data.included = false;
}
]]>
</fx:Script>
</mx:NumericStepper>
</fx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
обновляет значение в данных (я могу видеть, когда я закрыть и открыть диалоговое окно это в), но он не обновляется мгновенно в сетке данных. Как я могу изменить значение, как только будет установлен флажок?
Спасибо, но это не минимальный и максимальный, который мне нужно установить на этот раз, это фактическое значение (data.antal). Он устанавливается в dataprovider, но не отображается в datagrid, пока я не сброшу dataprovider для datagrid. – Lizzan
Код по-прежнему является основной концепцией того, как он должен работать. Поскольку вы фактически не показываете значение «antal» в любом месте вашего кода; Я не уверен, какой визуальный фрагмент вы пытаетесь обновить. – JeffryHouser
Значение «antal» - это то, что показано во втором столбце в datagrid. Это то, что не заметно обновляется в тот момент, когда я нажимаю флажок. – Lizzan