Flex Case dans la grille de données
Dans l'followin flex Code : Également visible sur : http://www.cse.epicenterlabs.com/checkBoxDg/checkBoxDg.html 1. Ajouter une ligne dans la grille de données en cliquant sur "AddRow" 2. Cliquez sur "CheckDg" pour voir les valeurs de toutes les cases - il montre "checkBox57" ou "checkBox64" ou d'une même chaîne 3. Maintenant, sélectionnez " la case de la première ligne. 4. Cliquez à nouveau sur "CheckDg" -il montrer le "vrai" Si, au départ dp.getItemAt(i).date retourne une Case à cocher et plus tard, il retourne à la "sélection" de la valeur de la Case à cocher? Pourquoi cette différence?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="srcview/index.html">
<mx:Canvas>
<mx:DataGrid x="69" y="119" id="dgFee" editable="true" dataProvider="{dp}">
<mx:columns>
<mx:DataGridColumn headerText="Date" dataField="date" width="100" editable="true"
editorDataField="selected" rendererIsEditor="true">
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selected="false">
</mx:CheckBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="amount" headerText="Amount" editable="true">
<mx:itemEditor>
<mx:Component>
<mx:TextInput restrict="0-9"/>
</mx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
<mx:CheckBox x="130" y="54" label="Checkbox" selected="true" click="Alert.show(abc.selected.toString())" id="abc"/>
<mx:Script>
<![CDATA[
import mx.controls.CheckBox;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
public var dp:ArrayCollection = new ArrayCollection();
public function addRow():void
{
var tmp:Object = new Object();
tmp['amount'] = 100;
tmp['date'] = new CheckBox();
dp.addItem(tmp);
}
public function delRow():void
{
if(dgFee.selectedIndex != -1)
dp.removeItemAt(dgFee.selectedIndex);
}
public function loop1():void
{
for(var i:int=0;i<dp.length;i++)
{
Alert.show(dp.getItemAt(i).date);
}
}
]]>
</mx:Script>
<mx:Button x="29" y="89" label="AddRow" click="addRow()"/>
<mx:Button x="107" y="89" label="DelRow" click="delRow()"/>
<mx:Button x="184" y="89" label="CheckDg" click="loop1()"/>
</mx:Canvas>
</mx:Application>
OriginalL'auteur dharm0us | 2009-07-13
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas censé affecter des objets à données variables, mais les données. Une case à cocher.sélectionnez la propriété est définie sur votre case à cocher objet premier et alors vrai ou faux après les actions précédentes. Essayez plutôt ceci
PS: dp doit être attribuée à [Bindable] 🙂
OriginalL'auteur Faheem
Lorsque vous cliquez sur la case à cocher dans la grille, il écrit "true" ou "false" dans le champ date, en remplacement de l'original de la Case de l'objet qui était là. Je crois que ce que itemEditors (vous utilisez votre rendu comme un éditeur) n'est-il écrit .les données de propriété à partir de composants respectifs dans la collection.
OriginalL'auteur CookieOfFortune
Définir le 'modifiable' propriété pour cette colonne de grille de données comme faux. Cela permettra de résoudre le problème
OriginalL'auteur Rekha