====== aParams ====== Esta propiedad la tienen todos los controles que puedan ejecutar una llamada tanto a nuestro CGI como a cualquier otro webservice. Su utilidad es poder añadir a la llamada que se realice información extra para que la reciba el webservice llamado, la información se enviara siempre por POST por pares de Variable y Dato. aParam es un array de pares :aParams := {{"variable1","dato1"}, {"variable2","dato2"}} como pueden ver siempre son cadenas, en caso de que algún dato no sea cadena, Néfele lo convertirá a cadena antes de montar el HTML final. Tenemos la posibilidad de hacer que entre los datos a devolver nos venga la propiedad de algún control en el momento del envío, para eso como dato pasaremos **#** y el [[propiedades:cid|cId]] del control :AddParam({"variable1","#nombre:value"}) si obviamos la propiedad (:value), por defecto nos retorna **:value**, dependiendo del control es posible que necesitemos que nos retorne otra propiedad, como por ejemplo un [[controles:wCheckBox]], en este caso lo lógico seria pedir la propiedad **:checked**, ya que si pedimos **:value** siempre nos retornara el valor de la propiedad **cChecked** del control. /* Para los wComboBox habrá que pedirle la propiedad **:cmbselect**, este control no tiene por defecto una propiedad que podamos pedirle, así que hemos creado esta que incluirá todo el código JS necesario para recuperar el **value** de item seleccionado. */ También podemos hacer que nos devuelva el resultado de una función o variable JS que lógicamente deberá existir en la página o ser genérica de JS. Para ello utilizaremos '**js:**' y el nombre de la función o variable. :AddParam({"esmovil","js:IsMovil"}) En el caso de que la función o variable JS retorne un Hash deberemos utilizar el indicador '**ap:**' para que Néfele sepa que tiene que concatenar ese Hash con el resto de aParams. :AddParam({"mibrowse","ap:dt_getValues('browse')"}) Podemos también recuperar datos de [[https://www.w3schools.com/jsrEF/prop_win_localstorage.asp|LocalStorage]] y [[https://www.w3schools.com/JSREF/prop_win_sessionstorage.asp|SessionStorage]] mediante las etiquetas '**ls:**' y '**ss:**' y el nombre del campo. :AddParam({"midata","ls:midata"}) Hay que tener en cuenta que nuestro [[nefele:ocgi|CGI]] al recuperar esta información siempre nos retorna cadenas. Para recuperar estos parámetros utilizaremos [[ocgi:getcgivalue|oCGI:GetCGIValue]](cParametro, cDefault), con lo que nos devolverá el valor del parámetro indicado (cParametro) y en caso de no existir nos devolverá cDefault. Si sabemos que el parámetro en cuestión es un Array podemos utilizar [[ocgi:getcgiarray|oCGI:GetCGIArray]] para recuperarlo. ==== Peculiaridades a tener en cuenta ==== En el control wForm los aParams se envían al hacer el submit, y estos se añadirán a los valores de los controles input ([[controles:wEdit]], [[controles:wDatePicker]], [[controles:wTimePicker]], etc..) que tengamos dentro del [[controles:wForm]], por lo que no es necesario incluirlos en aParams. En los controles que a su vez contienen controles con evento, por ejemplo los [[controle:wListView]] y sus [[controle:|wItemListView]], podemos definir aParams genéricos que se enviarán en todas las llamadas y aParams específicos para cada ítem que se añadirán a los genéricos en el momento de la llamada. Para facilitar el trabajo estos ítem ya enviarán datos que nos pueden ser útiles en nuestro CGI como es el [[propiedades:cId]] del control que realizó la llamada, el evento y el [[propiedades:nRowId]], si lo tiene, y que no debemos confundir con el [[propiedades:cId]] El [[propiedades:nRowId]] es el id del registro en la BBDD (o el id que le pasáramos en el momento de crear el control y que nos identifica de manera inequívoca el registro sobre el que queremos actuar) y el [[propiedades:cId]] es el identificador de cada control dentro de la página. ~~DISCUSSION|Comentarios aParams~~