¿Quieres registrarte?

checkbox con valor 1 y 0 en flex

Citar            
MensajePublicado: 04 Feb 2010 12:45 am
Hola, me preguntaba si alguien me puede echar una manito indicándome por encima como extiendo el chackbox para que en vez de true y false, reciba los valores 1 y 0, es que mysql no maneja esos datos muy bien.

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: 04 Feb 2010 03:44 pm
Con que le hagas un cast a Number al valor que recibes es suficiente

trace(Number(false))
trace(Number(true))

Jorge

solisarg
BOFH

Bastard Operators From Hell
clabLevel: 6478
Argentina

1 Tutorial
2 Tips

firefox
      MP     Web
Citar            
MensajePublicado: 04 Feb 2010 03:56 pm
si fuera un solo checkbox estaría bien, incluso si fuera un solo dato, pero recibo un array con 1 y 0, ese array debe alimentar varios checkboxes que actuan como itemrenderers en un datagrid.

Verás, si yo recibiera datos como false y true, solucionaría mi problema sin hacer nada, pero recibo 1 y 0, esos numeros no le sirven al checkbox, solo valores boolean, necesito extender la clase checkbox para que reciba numeros en vez de boolean, así puedo asignar mi dataprovider y ellos tomarán los datos bien.

El problema está en que la clase checkbox es muy enredada y no tengo mucha experiencia extendiendo componentes, así que necesito a alguien que me guie un poco, que me de unas pautas, porque no he encontrado nada parecido en ninguna parte, ni tampoco otra forma de manejar lo que quiero.

Espero haberme hecho entender.

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: 06 Feb 2010 01:14 am
tinyint mysql maneja ceros y uno si pasas un booleano lo transforma

xcom


clabLevel: 312



firefox
      MP    
Citar            
MensajePublicado: 06 Feb 2010 02:26 pm
Ese es precisamente el problema, si no los transformara, podría volver a leer los valores y el checkbox los aceptaría, pero como los transforma, pues cuando le la tabla me llegan solo 1 y 0, y los checkbox no responden a esos datos, por eso necesito crear un componente basado en checkbox que no reciba boolean, sino 1 y 0.

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: 06 Feb 2010 06:23 pm
pero llena el combo box de ceros y unos o sea un simple array
micombobox.dataprovider=arraydeunosyceros luego pergunta por el volaro

si valor en el arrray es cero
return flase
de lo contrario es true

xcom


clabLevel: 312



firefox
      MP    
Citar            
MensajePublicado: 06 Feb 2010 09:05 pm
no es un combobox, tal vez leiste mal, es un checkbox, de los que se les da click y le aparece una marquita, como una X, o un chulito, y no se puede evaluar el valor del dataprovider, pensaba en hacer así:

Código :

 datafield="{Boolean(dato)}"
pero obviamente no funciona, no puede evaluar esa variable, y lo que no quiero es tener que pasar un loop al array para reemplazar todos los datos, simplemente con modificar el componente basta, pero no se que partes son necesarias.

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: 06 Feb 2010 11:42 pm
se supone que tu estas recibiendo 1 y 0 y suponpo que tienes en un datagrid como en itemrender
entonces cuando llegas tu datos en el item render evaluas , aca hay una serie de formas como
acotar ese problemas. Debes crear una columna esa columna sera una clase, luego con esto ya evaluas
sobre tu valores que vienen desde tu base de datos sin hacer un loop

http://blogs.adobe.com/aharui/2007/03/thinking_about_item_renderers_1.html

mira el ejemplo del cambio de color eso te ayudara bastante . suerte amigo

xcom


clabLevel: 312



firefox
      MP    
Citar            
MensajePublicado: 07 Feb 2010 12:47 am
pues el valor contra el que debo evaluar es estático, osea, siempre será 1 o 0, así que no necesito la clase de la columna, pero el problema está en el itemrenderer (lo que he preguntado desde el principio) y es que en esa página solo trabajan con el itemrenderer nativo del datagrid, extendiéndolo, pero como no conozco mucho de extender componentes, pues me quedo aquí:

Código :

package clases
{
   import mx.controls.CheckBox;
   import mx.controls.DataGrid;
   import mx.controls.dataGridClasses.DataGridListData;

   public class MysqlCheckBox extends CheckBox
   {
      public function MysqlCheckBox()
      {
         super();
                        var grid1:DataGrid = DataGrid(DataGridListData(listData).owner);
         if (data[DataGridListData(listData).dataField] == 0)
         {
            //que hago?
         }
         else
         {
            //que hago?
         }
      } 
   }
}
y ni siquiera estoy seguro de que esté bien, se supone que hay que primero entender un montón de código de flex para extender componentes, y aunque me encantaría sentarme a estudiar los componentes y demás, no tengo el tiempo para ello, por eso quería saber si alguien tiene buen conocimiento de extender componentes para que me explicara algunas cosas rápidas y me solucionara unas dudas y así no tener que demorarme días a punta de ensayo y error.

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: 07 Feb 2010 01:05 am
Lo resolví gracias a un amigo, la respuesta está en especificar un in-line renderer, así:

Código :

<mx:columns>
         <mx:DataGridColumn headerText="Column 1" dataField="valor">
            <mx:itemRenderer>
               <mx:Component>
                  <mx:CheckBox selected="{data.valor}"/>
               </mx:Component>
            </mx:itemRenderer>
         </mx:DataGridColumn>
      </mx:columns>
y riéndome de mi ignorancia al no conocer esta técnica tan simple (aunque no tan usada de todas formas, no solo yo la ignoraba al parecer, juzgando por la falta de respuestas efectivas) me voy a seguir trabajando en mi proyecto, no sin antes agradecer el interés de todos ustedes, debo decir que aprendí algunas otras cosas leyendo sus aportes, sobre todo el último de xcom, encontré una mejor manera de cambiar el fondo de la celda, más liviana que la que tenía implementada. Gracias a todos, prometo estudiar sobre extensión de componentes porque se que es algo muy poderoso, tan pronto tenga una oportunidad me dedicaré a estudiarlos y a como sacarles provecho.

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: 08 Feb 2010 12:54 pm
¿Pero ese data.valor es 0 o 1 ?

Jorge

solisarg
BOFH

Bastard Operators From Hell
clabLevel: 6478
Argentina

1 Tutorial
2 Tips

firefox
      MP     Web
Citar            
MensajePublicado: 08 Feb 2010 05:52 pm
si, como mencioné antes, mysql solo trabaja con valores 0 o 1, no false y true, así que mysql envía un array de 0 y 1

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web
Citar            
MensajePublicado: 09 Feb 2010 10:31 pm
bueno aun quede metido , lo importante que debes saber es lo siguiente :

En mysql si mandas un true desde flex , cuando llegue a bd siendo este un campo
tinyint lo convertira en 1 y si mandas luego un false quedara un 0 , en otras versiones
de mysql era al reves, pero en el backend cuando tomes estos datos ya no sera
un cero y uno ya que java lo mapea con su conector y simplementes retorna true o flase
segun el valor que se encuentre en ese campo. En php me imagino que sera lo mismo.

xcom


clabLevel: 312



firefox
      MP    
Citar            
MensajePublicado: 09 Feb 2010 11:37 pm
no, en php no es así, a no ser que hagas un loop y conviertas los datos, precisamente el tipo de procedimiento que quería evitar.

Verán, mi intención es programar de la forma más fácil posible sin sacrificar mucho el rendimiento o seguridad, y siguiendo ese lineamiento, yo no creo value objects, que es crear una clase en php y otra equivalente en AS3, porque eso me dejaría con montones de clases de ambos lados y un tremendo dolor de cabeza al hacer debug, la solución que encontré es perfectamente adecuada y no requiere hacks raros.

Xyrer


clabLevel: 438
Detrás de ti!



chrome
Google Talk   MSN Messenger     MP     Web

   Página 1 de 1

Responder al tema
Respuesta Rapida


 

 

Cristalab BabyBlue + BloodBerry © 2007 Cristalab
Powered by phpBB © 2001, 2007 phpBB Group

3 6 7 8 10 11 12 14 15 17 18 28 34 38 40 42 44 45 46 47 48