ejemplo paginado listview que esta en foro no paginate

Foros Néfele 4 Harbour Foros Dudas ejemplo paginado listview que esta en foro no paginate

Mostrando 2 respuestas a los debates
  • Autor
    Entradas
    • #1785

      Estimados colaboradores, este ejemplo tomado integramente del foro como ejemplo de paginate del listview, compilado y ejecutado no funciona al paginar

      necesito presentar una lista de fotogragias y nombres que se pueda paginar en presentacion de ficha, por eso queria usar este ejemplo

      gracias

       

      PROCEDURE Factures()

      // Comenzamos instanciando la Página Web que queremos crear
      with object TWebPage():New()
      // Instanciamos un Panel para que sea el contenedor del formulario, permite poner un titulo y tiene un efecto sombra
      With Object WPanel():New(:WO)
      // tenemos que tener un contenedor para recibir la respuesta del AJAX
      With Object WBevel():New(:WO)
      :cId := "pages"
      // Cuando cargamos la primera vez montamos la página 1 del listview
      FacturesBrowse( 1, :WO )
      :Create()
      End With

      :Create()
      end with

      // Y listo, ya tenemos nuestra página creada, como el :Create() de un tWebPage nos retorna todo el HTML de la página
      // sobre la marcha hacemos el envio de dicho HTML al navegador que nos ha realizado la conexión
      oCgi:SendPage(:Create())
      end with

      RETURN

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

      static FUNCTION FacturesBrowse( nPage, oParent )
      LOCAL cHtml
      Local n, aItems := {}

      //Cargamos datos en un Array que se mostraran en el Browse
      //Podríamos proveer de datos el Array desde cualquier consulta DBF o MariaDB
      AAdd( aItems, { 1, 20001 } )
      AAdd( aItems, { 2, 20002 } )
      AAdd( aItems, { 3, 20003 } )
      AAdd( aItems, { 4, 20004 } )
      AAdd( aItems, { 5, 20005 } )

      DEFAULT nPage TO 1

      WITH OBJECT WListView():New(oParent)
      :lTitleItem := .T.

      // Parametros para la Paginación
      :nItemInPage   := 3//7
      :nPage         := nPage
      :cOnChangePage := "FacturesAjaxChangePage" // Esta es la función a Llamar al cambiar de página
      :cAjaxPages    := "pages"      // Este es el wBevel que contiene el wListView y al que hay que enviar la respuesta del AJAX

      For n:=1 To Len(aItems)
      WITH OBJECT :AddItem( aItems[n,1],, "Factura: " + ToString(aItems[n,2]) ) AS wItemListView
      END With
      Next

      :Create()
      // Como tambien lo podemos llamar por AJAX recuperamos todos el código HTML y JS en una cadena
      cHtml := :FullHtml()
      end with

      RETURN cHtml

      //------------------------------------------------------------------------------
      // Esta es el metodo que es llamado por AJAX
      PROCEDURE FacturesAjaxChangePage()
      // El Listview nos envia en la llamada tres Parametros de su configuración que podemos
      // recuperar con oCgi:GetCgiValue
      // newpage    := Próxima página a mostrar
      // cType      := tipo de ListView
      // lTitleItem := Si se presenta el titulo de las lineas (cuidado devuelve 'true' o 'false')
      LOCAL nPagina    := Val(oCgi:GetCgiValue("newpage", "1"))  // Recuperamos la página a mostrar

      // Montamos el listview con los parametros recibidos y lo enviamos de respuesta
      oCgi:SendPage( FacturesBrowse(nPagina) )

      RETURN

      Loading spinner
    • #1787
      XeviXevi
      Participante

      Lo acabo de probar, ya desde que lo puse en ejemplos ahí se quedó el código...
      Copiar-Pegar el código mismo que tienes en el mensaje anterior, y está funcionando perfectamente.

       

      Puedes verlo en...

      https://xevicomas.duckdns.org/cgi-bin/xcmProves_ListViewPaginacion.exe

       

      Un detalle que debes de tener en cuenta, si no te está funcionando. Debes de tener enrutado la funció encargada de la paginación

       

       

       

      Loading spinner
      • Esta respuesta fue modificada 3 años por XeviXevi.
    • #1789

      Xevi, Buenas tardes, Gracias, tienes razon, me faltaba enrutar facturesajaxchangepage() , todo trabaja muy bien gracias nuevamente

      Loading spinner
Mostrando 2 respuestas a los debates
  • Debes estar registrado para responder a este debate.

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para «permitir cookies» y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar» estarás dando tu consentimiento a esto.

Cerrar