Herramientas de usuario

Herramientas del sitio


funciones:nfl_updatebyid

Función nfl_UpdateById

nfl_UpdateById( aData, lTag ) --> cJS

Nos devuelve la cadena JS/JQuery necesaria para modificar propiedades de los elementos del DOM.

aData es un Array de elementos del DOM a modificar { {“elem1”, value1, “property1”}, {“elem2”, value2, “property2”} }, si solo vamos a modificar un elemento del DOM podemos pasarle una array simple {“elem”, value, “property”}

Si no damos valor a property de utilizara “value” por defecto

Como Property se admite;

  • html: Para modificar el contenido de un elemento contenedor
  • addclass: Para añadir una clase CSS al elemento
  • removeclass: Para eliminar una clase CSS al elemento
  • setattribute: Para añadir y modificar un atributo del elemento
  • removeattribute: Para eliminar una atributo del elemento
  • disabled: Para poner en modo deshabilitado al elemento
  • pulse: Para que el elemento parpadee
  • data-badge-caption: Para modificar el texto de un wBadget

Ejemplo de uso por AJAX

PROCEDURE vUpDateById( o )

   WITH OBJECT WBevel():New( o )
      :lValign      := .T.
      WITH OBJECT WBevel():New( :WO )
         :aWidth[ xc_S ] := 5
         WITH Object WButton():New( :WO )
            :cText         := "Activar Pulse"
            :cOnClick      := "UpDateById1"  // Esto realmente llama a AjaxUpdateById( .T. )
            :cIcon         := "blur_on"
            :cAjaxBevel    := "nflcargo"
            :lLarge        := .T.
            :lCenter       := .T.
            :nFix          := "90%"
            :Create()
         END WITH
         :Create()
      END WITH

      WITH OBJECT WBevel():New( :WO )
         :aWidth[ xc_S ] := 2
         :lHcenter       := .T.
         WITH OBJECT WIcon():New( :WO )
            :cId   := "oicon"
            :cIcon := "cancel"
            :cSize := "large"
            :Create()
         END WITH
         :Create()
      END WITH

      WITH OBJECT WBevel():New( :WO )
         :aWidth[ xc_S ] := 5
         WITH Object WButton():New( :WO )
            :cText         := "Desactivar Pulse"
            :cOnClick      := "UpDateById2"  // Esto realmente llama a AjaxUpdateById( .F. )
            :cIcon         := "blur_off"
            :cAjaxBevel    := "nflcargo"
            :lLarge        := .T.
            :lCenter       := .T.
            :nFix          := "90%"
            :Create()
         END WITH
         :Create()
      END WITH

      :Create()
   END WITH

RETURN

//------------------------------------------------------------------------------

PROCEDURE AjaxUpdateById( lPulse )

   oCGI:SendScript( nfl_UpdateById( {{ "oicon", lPulse, "pulse" },;
                                     { "oicon", "red-text", IIF( lPulse, "addclass", "removeclass") } } ) )

RETURN

//------------------------------------------------------------------------------

CLASS TCgi FROM XCgi
   // De esta manera tengo dos entradas al CGI que van al mismo PROCEDURE pero con parámetros distintos
   METHOD UpdateById1()     INLINE AjaxUpdateById( .T. )
   METHOD UpdateById2()     INLINE AjaxUpdateById( .F. )

END CLASS


Ejemplo de uso directamente con JS

PROCEDURE vUpDateById2( o )

   WITH OBJECT WBevel():New( o )
      :lValign      := .T.
      WITH OBJECT WBevel():New( :WO )
         :aWidth[ xc_S ] := 5
         WITH OBJECT WButton():New( :WO )
            :cText         := "Activar Pulse"
            :cOnClick      := "js:" + nfl_UpdateById( { { "oicon", .T., "pulse" },;
                                                        { "oicon", "red-text", "addclass" } } )
            :cIcon         := "blur_on"
            :lLarge        := .T.
            :lCenter       := .T.
            :nFix          := "90%"
            :Create()
         END WITH
         :Create()
      END WITH

      WITH OBJECT WBevel():New( :WO )
         :aWidth[ xc_S ] := 2
         :lHcenter       := .T.
         WITH OBJECT WIcon():New( :WO )
            :cId   := "oicon"
            :cIcon := "cancel"
            :cSize := "large"
            :Create()
         END WITH
         :Create()
      END WITH

      WITH OBJECT WBevel():New( :WO )
         :aWidth[ xc_S ] := 5
         WITH OBJECT WButton():New( :WO )
            :cText         := "Desactivar Pulse"
            :cOnClick      := "js:" + nfl_UpdateById( { { "oicon", .F., "pulse" },;
                                                        { "oicon", "red-text", "removeclass" } } )
            :cIcon         := "blur_off"
            :lLarge        := .T.
            :lCenter       := .T.
            :nFix          := "90%"
            :Create()
         END WITH
         :Create()
      END WITH

      :Create()
   END WITH

RETURN

Parámetros

Nombre Descripción Versión
aData Array de elementos del DOM a modificar 0.4
lTag Si lo habilitamos nos empaquetara la salida entre <script> 0.4
funciones/nfl_updatebyid.txt · Última modificación: 14/12/2023 15:48 por pedro