CheckBox Flex în Datagrid

voturi
3
În Codul flex followin: 
De asemenea, pot fi vizualizate la: http://www.cse.epicenterlabs.com/checkBoxDg/checkBoxDg.html
1. Adăugați un rând în DataGrid, făcând clic pe „AddRow“
2. Faceți clic pe „CheckDg“ pentru a vedea valorile tuturor casetele de selectare
     - se arată „checkBox57“ sau „checkBox64“ sau un șir de caractere similare
3. Acum, „selectați“ caseta de selectare, în primul rând.
4. Faceți clic din nou pe „CheckDg“
    -se spectacol „true“

Deci, inițial dp.getItemAt (i) .date returnează un CheckBox
iar mai târziu returnează valoarea „selectat“ din caseta de selectare?
De ce această diferență?
<?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>
Întrebat 13/07/2009 la 18:13
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
0

Când faceți clic pe caseta de selectare din grila, acesta scrie „adevărat“ sau „fals“ în câmpul dată, înlocuind obiectul CheckBox original, care a fost acolo. Eu cred ce itemEditors (pe care îl utilizați face ca editor) fac ei este scrie proprietatea .data din componentele respective în colecție.

Publicat 13/07/2009 la 19:03
sursa de către utilizator

voturi
3

Nu ar trebui să atribuie obiecte ale variabilelor de date, dar datele. proprietate Checkbox.select este setat la obiectul dvs. caseta de selectare și apoi adevărate sau false după acțiunile precedente. Încercați acest lucru în schimb

public function addRow():void
{
  var tmp:Object = new Object();
  tmp['amount'] = 100;
  tmp['date'] = false; // not new CheckBox();
  dp.addItem(tmp);
}

PS: De asemenea, DP ar trebui să fie atribuită cu [Bindable] :-)

Publicat 12/04/2010 la 16:27
sursa de către utilizator

voturi
0

Setați proprietatea „editabil“ pentru acea coloană Datagrid special ca fiind false. Acest lucru va rezolva problema

Publicat 25/10/2013 la 20:23
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more