Comunidad de diseño web y desarrollo en internet online

webservice a runtime

Citar            
MensajeEscrito el 13 Dic 2008 11:45 am
Hola a todos,
Tengo un problema en el crear un webservice a runtime. no se como pasarle los parametros <mx:request>
No puedo utilizar los tags <mx:WebService> porque estoy trabajando dentro de un <mx:DataGridColumn> en un <mx:itemRenderer><mx:Component> y tengo aceso solo al apartado <mx:Script>
Por lo cual mi idea seria la seguiente, realizar un funcion parecida a esta :

var ws:WebService as new WebService();
ws.wsdl = "http://www.miweb.com/datos.asmx?WSDL";
ws.operations="identidad";

"identidad" es el nombre de me routina en en webservice datos.asmx.
pero como le paso estos 2 parametros ??????
<mx:request>
<user>abc</user>
<pass>123</pass>
</mx:request>

y como puedo lanzar la peticion, así ¿¿¿¿¿¿¿
ws.send();
lo veo feo ... no creo que funcionará !!!!

gracias a todo para la ayuda ! ^^

Por Lorix

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 15 Dic 2008 10:03 am
Para eso existe los databindings. Si por ejemplo el parámetro user dice así:

<user>{selectedUser}</user>

Y tienes declarada una variable así:

[Bindable]
var selectedUser:String

Que seteas al seleccionar algo en el datagrid, solo tienes que hacer el send, los datos se actualizan automáticamente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Dic 2008 05:11 pm
hola Jorge,
Mi problema es lo seguiente:
Tengo un DATAGRID donde en la primera de las 10 calumnas (pero en cada lineas) he puesto un BUTTON .. al finchar en este button (dentro del datagrid) se deberia lanzar un SEND al webservice que deberia grabar solo los parametros de la linea en mi base de datos MySql.

mi button lo hago de la seguiente forma con un <mx:DataGridColumn><mx:itemRenderer><mx:Component><mx:Button>

si el button fuera ubicado en un toolbar (externo al datagrid) y con este webservice ... todo funcionaria correctamente. Seria suficiente lanzar S.identidad.send();

<mx:WebService wsdl="http://www.miweb.com/datos.asmx?WSDL" id="S" >
<mx:operation name="identidad">
<mx:request>
<id>{id}</id>
<Risp>{risp}</Risp>
<stato>{stato}</stato>
</mx:request>
</mx:operation>
</mx:WebService>

Pero mi problema es que estoy dentro de un "ItemRenderer" y lo puedo alcanzar mi id = "S"
Por lo cual pensabo de realizar todo en un <mx:script> dentro del <mx:ItemRenderer> y crear todo el WebService a runtime ... pero no se como pasarle los parametros ni como realizar el send !!!

Por Lorix

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 15 Dic 2008 07:22 pm
En principio, la ruta a la aplicacion es Application.application.tuwebservice.send, eso seria la ruta absoluta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Dic 2008 10:26 am
Eres grande !
No habia pensado en la ruta absoluta ! me he montado una pelicula para nada ! he solucionado.
Muchas gracias, Jorge.

Por Lorix

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Dic 2008 08:30 am
Hola Jorge,
Tu solución de la [color=]ruta absoluta [/color]me sirve y funciona perfectamente pero he descubierto un mando alternativo que me soluciona la papeleta. Se trata del "outerDocument" que permite de alcanzar las funciones del MXML desde dentro un "ItemRenderer".
No se si se trata de un verdadero "tip”! ...
... He hecho un ejemplo:
:wink:

Código :

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

<mx:Script>
  <![CDATA[
    import mx.controls.Alert;

    // Routina externa al mx:itemRender y al mx:Component
    // en este caso se lanza un ALERT !!!
    public function RoutinaRaiz():void{ Alert.show("texto : "+ Grid.selectedItem.label,"Mensaje :") }
  ]]>
</mx:Script>
   
<mx:ArrayCollection id="arrColl">
  <mx:source>
    <mx:Array>
      <mx:Object numero="1" label="Row 1"/>
      <mx:Object numero="2" label="Row 2"/>
      <mx:Object numero="3" label="Row 3"/>
    </mx:Array>
  </mx:source>
</mx:ArrayCollection>
    
<mx:DataGrid id="Grid" x="50" y="50" width="400" 
                   height="200" dataProvider="{arrColl}">
<mx:columns>
  <mx:DataGridColumn headerText="num" dataField="numero"/>
  <mx:DataGridColumn headerText="txt" dataField="label"/>
  <mx:DataGridColumn headerText="but">
    <mx:itemRenderer>
      <mx:Component>
        <mx:Button click="outerDocument.RoutinaRaiz();" label="Click me !"/>
      </mx:Component>
    </mx:itemRenderer>
  </mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
   
</mx:Application>

Por Lorix

13 de clabLevel



 

msie7

 

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