Utilização do controle lum_pagination
Na opção "Número de Itens" do right-click das interfaces Lista do Lumis, por exemplo, pode ser determinada a quantidade de itens que serão exibidos. No caso a página que contém a interface Lista sofrerá uma paginação.
Portanto, caso a interface Lista do serviço de Notícias, por exemplo, receba pelo XML um número maior de itens cadastrados do que o determinado como máximo, as informações de paginação chegarão no controle lum_pagination, no XML:
A partir do código XML anterior, tem-se duas opções para montar a paginação:
- Chamar o template de paginação já existente no DouiControls.xsl dentro do XSL da interface Lista.
- Ou, chamar o mesmo template, porém customizando-o no próprio arquivo XSL onde ele foi chamado.
Chamando o template de paginação no arquivo XSL da interface Lista (de Notícias):
Notas:
Além da adição do <xsl:apply-templates />
chamando o template de lum_pagination, foi adicionado o seguinte código:
Isso porque, para a paginação funcionar, deve ser utilizado <xsl:templatematch="//control[@type='lum_form']">
, ao invés de apenas <xsl:template match="/">
, e além disso é necessário o <form>
chamando o template de lum_formHeader.
Para simplificar o código, basta utilizar a tag <lum:form />
à volta do código. Essa é uma das áreas mais indicadas para se usar as tags do Lumis ao invés de tags de XSL normais. (procurar o exemplo com <lum:form />
)
Com a codificação XSL anterior, tem-se a paginação montada. No exemplo a seguir, foi determinado para a interface, exibir apenas um item por página, como pode ser visto no XML da mesma:
A segunda opção para montar a paginação, customizando a estrutura e layout, deve ser utilizada a tag <xsl:template match="//control[@type='lum_pagination']">
. Desta vez, foi utilizado o <lum:form />
para facilitar:
Em um primeiro momento, o XSL do controle de lum_pagination pode parecer complexo. Esta complexidade está relacionada a testes de verificação de existências de paginação, quantidade de páginas, qual será a última página, existência de links de próximo e anterior, e etc...
O código referente à paginação foi retirado do arquivo DouiControls.xsl e realizadas algumas alterações.
Com a customização do controle lum_pagination, a interface Lista será assim exibida: