Comunidad de diseño web y desarrollo en internet online

Codigo Ayuda! Porfavor !

Citar            
MensajeEscrito el 16 Dic 2012 04:35 pm
Con este codigo estoy filtrando combobox cuando uso arraycollection funciona perfectamente pero uso Base de datos y al filtrar ase la accion pero no me muestra nada como si los datos que busco no estuviesen en el combobox o en el datagrid


Código Flex :

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="400" minHeight="600"
            width="400" height="370" xmlns:flexlib="http://code.google.com/p/flexlib/"
         
            viewSourceURL="srcview/index.html" xmlns:sexoservice="services.sexoservice.*" xmlns:filtroservice="services.filtroservice.*">
   <s:layout>
      <s:VerticalLayout/>
   </s:layout>
   <fx:Script>
      <![CDATA[
         
         import mx.controls.Alert;
         import mx.events.FlexEvent;
         import mx.utils.StringUtil;
         
         //variable en la que guardaremos el token a buscar
         private var str2search:String = "";
         //dejamos la variable como Bindable para que detecte automaticamente los cambios al proveedor
      
         
         
         /**
          * Este metodo se disparara cada vez que se escriba algo en la caja de texto de busqueda
          */
         protected function tiBuscar_changeHandler(event:Event):void
         {
            //recuperamos el texto de la caja de busqueda y lo convierto a minusculas
            str2search = StringUtil.trim(tiBuscar.selectedItem.sexo).toLowerCase();
            //validamos que no este vacia
            if (str2search != "")
            {
               //si no esta vacia, aplicamos la funcion
               getAllFiltroResult.lastResult.filterFunction = busca;
            }
            else
            {
               //si esta vacia, quitamos la funcion de filtrado
               getAllFiltroResult.lastResult.filterFunction = null;
            }
            //despues de cualquier filterFunction, se tiene que aplicar el metodo refresh
            getAllFiltroResult.lastResult.refresh();
         }
         
         private function busca(item:Object):Boolean
         {
            //variable de retorno
            var ret:Boolean = false;
            //variable que almacenara el nombre de cada indice del elemento
            var p:String = "";
            //variable que almacenara el valor del elemento
            var str:String = "";
            //recorro cada indice del elemento
            for (p in item)
            {
               //no quiero que busque en la propiedad mx_internal_uid
               if (p != "mx_internal_uid")
               {
                  //recupero el valor del elemento y lo convierto a minusculas
                  str = String(item[p]).toLowerCase();
                  //veo si la cadena de busqueda existe en el valor del elemento
                  if (str.indexOf(str2search) != -1)
                  {
                     //si existe, regreso un true para que el elemento sea agregado al proveedor
                     ret = true;
                     //termino el ciclo, no hay necesidad de seguir buscando
                     break;
                  }
               }
            }
            //regreso el valor Boolean
            return ret;
         }
         
         
         protected function tiBuscar_creationCompleteHandler(event:FlexEvent):void
         {
            getAllSexoResult.token = sexoService.getAllSexo();
         }
         
         
         protected function comboBox_creationCompleteHandler(event:FlexEvent):void
         {
            getAllFiltroResult.token = filtroService.getAllFiltro();
         }
         
      ]]>
   </fx:Script>
   <fx:Declarations>
      <s:CallResponder id="getAllSexoResult"/>
      <sexoservice:SexoService id="sexoService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
      <s:CallResponder id="getAllFiltroResult"/>
      <filtroservice:FiltroService id="filtroService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
   </fx:Declarations>
   <s:ComboBox dataProvider="{getAllFiltroResult.lastResult}" labelField="nombre" width="100%" creationComplete="comboBox_creationCompleteHandler(event)"  />


   <s:ComboBox dataProvider="{getAllSexoResult.lastResult}" width="220" id="tiBuscar" labelField="sexo"  change="tiBuscar_changeHandler(event)"  creationComplete="tiBuscar_creationCompleteHandler(event)"/>
   <mx:DataGrid id="dataGrid" dataProvider="{getAllFiltroResult.lastResult}">
      <mx:columns>
         <mx:DataGridColumn headerText="cod_persona" dataField="cod_persona"/>
         <mx:DataGridColumn headerText="nombre" dataField="nombre"/>
         <mx:DataGridColumn headerText="sexo" dataField="sexo"/>
      </mx:columns>
   </mx:DataGrid>
      
   
   
</s:Application>

Por jmancilla

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Dic 2012 08:37 pm
Creo que ya lo dije, pero lo repito. Lo primero cuando consultas bases de datos es sniffar la conexión y ver que la llamada se realice y los datos vengan. Creo que ya lo dije, pero charlesproxy.com es una buena herramienta para esto. Luego si los datos vienen correctamente, ya te pones a mirar dentro de Flex

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Dic 2012 05:10 pm
okay gracias por la ayuda

Por jmancilla

13 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.