Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Flash y Actionscript (http://www.forosdelweb.com/f16/)
-   -   Problema refresco checkbox en una list (http://www.forosdelweb.com/f16/problema-refresco-checkbox-list-572065/)

falcatin 02/04/2008 20:04

Problema refresco checkbox en una list
 
He creado una list y dentro varios checkbox, el problema es que cuando por ejemplo se marcan todos los checkbox,si subes y bajas la barra de desplazamiento de la list hacia abajo y arriba, los ultimos pierden la cruz de marcado y no se porque.
alguna idea?.

cachoron4444 13/04/2008 11:50

Re: Problema refresco checkbox en una list
 
Cita:

Iniciado por falcatin (Mensaje 2347736)
He creado una list y dentro varios checkbox, el problema es que cuando por ejemplo se marcan todos los checkbox,si subes y bajas la barra de desplazamiento de la list hacia abajo y arriba, los ultimos pierden la cruz de marcado y no se porque.
alguna idea?.

Intenta este ejemplo... ami me sirvió para futuras aplicaciones....

Saludos
Código:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*" >

<mx:Script>
<![CDATA[

private var stateList:Array = [
                                { label: "Alaska", selected: false },
                                { label: "Arkansas", selected: false },
                                { label: "California", selected: false },
                                { label: "Delaware", selected: false },
                                { label: "Florida", selected: false },
                                { label: "Georgia", selected: false },
                                { label: "Hawaii", selected: false },
                                { label: "Massachusetts", selected: false },
                                { label: "Nevada", selected: false },
                                { label: "Pennsylvania", selected: false },
                                { label: "South Dakota", selected: false },
                                { label: "Tennessee", selected: false },
                                { label: "Utah", selected: false },
                                { label: "Virginia", selected: false },
                                { label: "Washington", selected: false }
                                ];


private function showSelected():void
{
        var s:String = "";
        var n:int = stateList.length;
        for (var i:int = 0; i < n; i++)
        {
                if (stateList[i].selected)
                        s += stateList[i].label + "\n";
        }
        ta1.text = s;
}

]]>
</mx:Script>

<mx:List id="list1" initialize="list1.dataProvider = stateList" width="200" >
        <mx:itemRenderer>
                <mx:Component>
                        <mx:CheckBox selectedField="selected" change="data.selected = selected" />
                </mx:Component>
        </mx:itemRenderer>
</mx:List>
<mx:Button label="show selected" click="showSelected()" />
<mx:TextArea id="ta1" width="200" height="100" />

</mx:Application>


falcatin 14/04/2008 04:37

Re: Problema refresco checkbox en una list
 
Muchisimas gracias por responder, cuando empece hace tiempo a utilizar itemRenderer fue el ejemplo más claro que encontré, incluso por si alguien lo utiliza podeís sacar fuera
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selectedField="selected" change="data.selected = selected" />
</mx:Component>
</mx:itemRenderer>
Y crear otro componente para reutilizarlo, esto es lo que hacia yo y no entendia porque cuando subia y bajaba la barra con el scroll se volvía a poner el selected a su valor anterior, pues bien hoy lo he solucionado simplemente hay que actualizar el data.selected.
Si haceis una traza no os extrañeis si entra en <mx:CheckBox varias veces con valor data=null.

cachoron4444 14/04/2008 07:56

Re: Problema refresco checkbox en una list
 
Cita:

Iniciado por falcatin (Mensaje 2362727)
Muchisimas gracias por responder, cuando empece hace tiempo a utilizar itemRenderer fue el ejemplo más claro que encontré, incluso por si alguien lo utiliza podeís sacar fuera
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selectedField="selected" change="data.selected = selected" />
</mx:Component>
</mx:itemRenderer>
Y crear otro componente para reutilizarlo, esto es lo que hacia yo y no entendia porque cuando subia y bajaba la barra con el scroll se volvía a poner el selected a su valor anterior, pues bien hoy lo he solucionado simplemente hay que actualizar el data.selected.
Si haceis una traza no os extrañeis si entra en <mx:CheckBox varias veces con valor data=null.

Ohhhh que bieen!!.. No eres el primero que veo que tiene el mismo problema, ya son varios, me puse a experimentar y a mi no me pasaba eso... pero lo que sí tenía problemas es al momento de llamar una funcion desde un checkbox itemrendereado, ya pregunté akí y nadie ha contestado, precisamente en la propiedad change del checkbox mando llamar una función para poder capturar el item seleccionado y me sale un error.

Este es mi problema:
http://www.forosdelweb.com/f113/erro...uncion-575496/
Si tienes alguna pista, te suplico me ayudes :'( como estás recogiendo el valor de ese checkbox?

falcatin 14/04/2008 15:09

Re: Problema refresco checkbox en una list
 
no puedes llamar a una función porque actua como si fuera un componente nuevo.

Es como si este código de tu ej
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox label="Escoger" click="modificarTexto()"/>
</mx:Component>
</mx:itemRenderer>

Lo metieses en un componente nuevo (que de echo es lo que te aconsejo)
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:CheckBox label="Escoger" click="modificarTexto()"/>
</mx:HBos>
(Aunque realmente es lo mismo que el codigo de arriba, las dos formas son iguales)

No sabe que es modificarTexto() porque no existe en el componente, tendrías que llamar con un evento, Application.application... o cualquier historia al procedimiento modificarTexto.


La zona horaria es GMT -6. Ahora son las 19:11.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.