Переменная Boolean в dataProvider из XML
Код AS3:
<?xml version="1.0"?>
<!-- itemRenderers\inline\CBInlineCellEditor.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var myDP:ArrayCollection = new ArrayCollection([
{label1:"Order #2314", contact:"John Doe", quant:3, solddate:new Date(2005, 0, 1), Sent:true},
{label1:"Order #2315", contact:"Jane Doe", quant:3, solddate:new Date(2005, 0, 5), Sent:false}
]);
]]>
</mx:Script>
<mx:DataGrid id="myDG" dataProvider="{myDP}" variableRowHeight="true" width="500" height="250" editable="true">
<mx:columns>
<mx:DataGridColumn dataField="label1" headerText="Order #" editable="false"/> <mx:DataGridColumn dataField="quant" headerText="Quantity" itemEditor="mx.controls.NumericStepper" editorDataField="value"/>
<mx:DataGridColumn dataField="solddate" headerText="Date" itemRenderer="mx.controls.DateField" rendererIsEditor="true" editorDataField="selectedDate"/>
<mx:DataGridColumn dataField="Sent" itemRenderer="mx.controls.CheckBox" rendererIsEditor="true" editorDataField="selected"/>
</mx:columns >
</mx:DataGrid>
</mx:Application>
так CheckBox'ы отмечаются:
{label1:"Order #2314", contact:"John Doe", quant:3, solddate:new Date(2005, 0, 1), Sent:true},
{label1:"Order #2315", contact:"Jane Doe", quant:3, solddate:new Date(2005, 0, 5), Sent:false}
а так нет:
{label1:"Order #2314", contact:"John Doe", quant:3, solddate:new Date(2005, 0, 1), Sent:"true"},
{label1:"Order #2315", contact:"Jane Doe", quant:3, solddate:new Date(2005, 0, 5), Sent:"false"}
проблема не в этом примере но схожа 1 в 1, просто заполняю datagrid через dataProvider не из массива, а из XML подгружаемого из вне, где все данные идут в String а как там указать тип boolean?
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="600" xmlns:myComp="com.Managers.*" creationComplete="loadManagersList();">
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.collections.ArrayCollection;
import mx.events.CollectionEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.controls.CheckBox;
[Bindable]
private var managersCollection:XMLListCollection = new XMLListCollection();
public function requestResultManagersListHandler(event:ResultEvent):void
{
managersCollection.source= event.result.manager as XMLList;
}
public function requestFaultHandler(event:FaultEvent):void
{
Alert.show("err"+event.message.toString());
}
public function loadManagersList():void
{
userRequest.cancel();
userRequest.addEventListener(ResultEvent.RESULT,requestResultManagersListHandler);
userRequest.resultFormat = "e4x";
userRequest.showBusyCursor = true;
userRequest.url = "managers.xml?"+Math.random();
userRequest.method = "GET";
userRequest.send();
}
]]>
</mx:Script>
<mx:HTTPService id="userRequest" fault="requestFaultHandler(event);"/>
<mx:VBox left="0" right="0" top="0" bottom="0">
<mx:VBox height="100%" width="100%">
<mx:AdvancedDataGrid id="adgManagers" width="100%" height="249" dataProvider="{managersCollection}" editable="true">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="check" itemRenderer="mx.controls.CheckBox" rendererIsEditor="true" editorDataField="selected" />
<mx:AdvancedDataGridColumn headerText="Column 1" dataField="name" />
<mx:AdvancedDataGridColumn headerText="Column 2" dataField="family"/>
<mx:AdvancedDataGridColumn headerText="Column 3" dataField="telephone"/>
</mx:columns>
</mx:AdvancedDataGrid>
</mx:VBox>
</mx:Canvas>
Сам XML
Код:
<?xml version="1.0" encoding="windows-1251" ?>
<managers>
<manager><name>name</name><family>family</family><telephone>1111</telephone><check>1</check></manager>
<manager><name>name</name><family>famildfgy</family><telephone>11fgg11</telephone><check>true</check></manager>
<manager><name>namefgdfg</name><family>fdfgamily</family><telephone>dfgdfg1111</telephone><check>TRUE</check></manager>
</managers>
как сделать чтобы чек боксы отмечались как в самом верхнем примере где данные грузятся из локального массива???
Заранее спасибо!
|