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

Problema refresco checkbox en una list

Estas en el tema de Problema refresco checkbox en una list en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/04/2008, 20:04
 
Fecha de Ingreso: enero-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
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?.
  #2 (permalink)  
Antiguo 13/04/2008, 11:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 208
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Problema refresco checkbox en una list

Cita:
Iniciado por falcatin Ver Mensaje
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>
__________________
Webmaster
http://www.conglomodigital.com
  #3 (permalink)  
Antiguo 14/04/2008, 04:37
 
Fecha de Ingreso: enero-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
De acuerdo 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.
  #4 (permalink)  
Antiguo 14/04/2008, 07:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 208
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: Problema refresco checkbox en una list

Cita:
Iniciado por falcatin Ver Mensaje
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?
__________________
Webmaster
http://www.conglomodigital.com
  #5 (permalink)  
Antiguo 14/04/2008, 15:09
 
Fecha de Ingreso: enero-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
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.
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 00:45.