Foros del Web » Creando para Internet » Flash y Actionscript »

Cargar valores a CheckBox con un XML remoto

Estas en el tema de Cargar valores a CheckBox con un XML remoto en el foro de Flash y Actionscript en Foros del Web. Hola colegas del foro, veran estoy intentado cargar de un archivo XML externo que tiene la estructura siguiente: Código PHP: < Conceptos >         < Concepto id ...
  #1 (permalink)  
Antiguo 05/05/2008, 15:25
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Cargar valores a CheckBox con un XML remoto

Hola colegas del foro, veran estoy intentado cargar de un archivo XML externo que tiene la estructura siguiente:
Código PHP:
<Conceptos>    
    <
Concepto id="1" descripcion="Primer Concepto" Lun='true' Mar='true' Mier='true' Jue='false' Vie='true' Sab='true' Dom='false'/>
    <
Concepto id="2" descripcion="Segundo Concepto" Lun='false' Mar='false' Mier='true' Jue='false' Vie='true' Sab='false' Dom='false'/>
    <
Concepto id="3" descripcion="Tercer Concepto" Lun='true' Mar='false' Mier='true' Jue='true' Vie='false' Sab='true' Dom='false'/>
</
Conceptos
Donde me he quedado sin poder resolverlo es en la parte de asignarle los valores almacenados en el Xml externo a los checkbox
Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="ConceptoXml.send();">
<mx:HTTPService id="ConceptoXml" url="http://localhost/Conceptos.xml" resultFormat="e4x" showBusyCursor="true"/>
<mx:Script>
    <![CDATA[
        import mx.controls.CheckBox;                 
    ]]>
</mx:Script>
    <mx:VBox width="100%" 
           height="100%">
        <mx:DataGrid width="380" height="210" dataProvider="{ConceptoXml.lastResult.Concepto}">
            <mx:columns>
                <mx:DataGridColumn headerText="Concepto" dataField="@descripcion" width="120"/>
                <mx:DataGridColumn headerText="L" dataField="@Lun" editorDataField="@Lun" 
                    rendererIsEditor="true"    itemRenderer="mx.controls.CheckBox"/>
                <mx:DataGridColumn headerText="M" dataField="@Mar" itemRenderer="mx.controls.CheckBox"/>
                <mx:DataGridColumn headerText="M" dataField="@Mier" itemRenderer="mx.controls.CheckBox"/>
                <mx:DataGridColumn headerText="J" dataField="@Jue" itemRenderer="mx.controls.CheckBox"/>
                <mx:DataGridColumn headerText="V" dataField="@Vie" itemRenderer="mx.controls.CheckBox"/>
                <mx:DataGridColumn headerText="S" dataField="@Sab" itemRenderer="mx.controls.CheckBox"/>
                <mx:DataGridColumn headerText="D" dataField="@Dom" itemRenderer="mx.controls.CheckBox"/>
            </mx:columns>
        </mx:DataGrid>
    </mx:VBox>
</mx:Application>
Alguien que pueda ayudarme, le estaría muy agradecido.

P.D.T. El Xml podria modificarlo a otra estructura de ser necesario
  #2 (permalink)  
Antiguo 06/05/2008, 11:37
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Re: Cargar valores a CheckBox con un XML remoto

Hola veran pude resolver esto de una manera que no muy me gusto, pero funciona.
Aca va el codigo unicamente para los dos primeros dias Lunes (L) y Martes(M)

Código:
                <mx:DataGridColumn headerText="L" dataField="@Lun" rendererIsEditor="true">
                <mx:itemRenderer>
                    <mx:Component>
                        <mx:CheckBox creationComplete="init()">
                    <mx:Script>
                        <![CDATA[                    
                            private var _data:Object;
                            private function init():void
                            {
                                this.addEventListener(MouseEvent.CLICK, update);
                            }
                            [Bindable]
                            override public function get data():Object
                            {
                                return _data;
                            }
                            
                            override public function set data(o:Object):void
                            {
                                _data = o;
                                if(o.@Lun == "true")
                                    this.selected = true;
                                else
                                    this.selected = false;
                                        
                            }
                            private function update(event:MouseEvent):void
                            {
                                if(this.selected)
                                _data.checked = "true";
                                else
                                    _data.checked = "false";        
                            }                                                     
                        ]]>                    
                    </mx:Script>
                    </mx:CheckBox>
                    </mx:Component>
                </mx:itemRenderer>
                </mx:DataGridColumn>                
                                
                <mx:DataGridColumn headerText="M" dataField="@Mar" rendererIsEditor="true">
                <mx:itemRenderer>
                    <mx:Component>
                        <mx:CheckBox creationComplete="init()">
                    <mx:Script>
                        <![CDATA[                    
                            private var _data:Object;
                            private function init():void
                            {
                                this.addEventListener(MouseEvent.CLICK, update);
                            }
                            [Bindable]
                            override public function get data():Object
                            {
                                return _data;
                            }
                            
                            override public function set data(o:Object):void
                            {
                                _data = o;
                                if(o.@Mar == "true")
                                    this.selected = true;
                                else
                                    this.selected = false;
                                        
                            }
                            private function update(event:MouseEvent):void
                            {
                                if(this.selected)
                                _data.checked = "true";
                                else
                                    _data.checked = "false";        
                            }                                                     
                        ]]>                    
                    </mx:Script>
                    </mx:CheckBox>
                    </mx:Component>
                </mx:itemRenderer>
                </mx:DataGridColumn>
Si alguien sabe alguna manera mucho mas optima, por favor que sea tan amable de indicarla
  #3 (permalink)  
Antiguo 06/05/2008, 12:37
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Re: Cargar valores a CheckBox con un XML remoto

Bueno al final lo he dejado asi para cada dia:
Código PHP:
                <mx:DataGridColumn headerText="L" dataField="@Lun">
                    <
mx:itemRenderer>
                    <
mx:Component>
                        <
mx:CheckBox>
                            <
mx:Script>
                            <![
CDATA[                    
                                
override public function set data(o:Object):void
                                
{
                                    
this.selected Boolean(int(o.@Lun));    //Lo convierto a entero, despues a boleano
                                
}
                            ]]>                    
                            </
mx:Script>
                        </
mx:CheckBox>
                    </
mx:Component>
                </
mx:itemRenderer>
            </
mx:DataGridColumn
Obviamente modifique el xml para que guardara valores de 0 y 1, en vez de falso y verdadero
Código PHP:
<Conceptos>
<
Concepto id="1" descripcion="Primer Concepto" Lun="0" Mar="0" Mier="1" Jue="0" Vie="1" Sab="0" Dom="0"/>
<
Concepto id="2" descripcion="Segundo Concepto" Lun="0" Mar="1" Mier="1" Jue="0" Vie="1" Sab="0" Dom="0"/>
<
Concepto id="3" descripcion="Tercer Concepto" Lun="1" Mar="0" Mier="1" Jue="1" Vie="0" Sab="1" Dom="0"/>
</
Conceptos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:10.