Class: Pagination

Pagination

Pagination

Este componente exibe links de paginação gerados automaticamente de acordo com a url informada no construtor. Esta url deve retornar um json de acordo com o retorno do repositório que extenda a interface PagingAndSortingRepository do Spring Data. O retorno de cada requisição retornará um conjunto de dados que será adicionado a um IStore.<T> que por sua vez pode ser utilizada como fonte de dados de alguns componentes, como o DataGrid e o TreeGrid. A responsabilidade deste componente é apenas controlar as requisições para obtenção dos dados e não a exibição dos mesmos.

A cada resposta de requisição o componente atualizará os dados da store através do método IStore#setData.


new Pagination()

See:
  • PaginatedDataGrid
  • DataGrid
  • TreeGrid
Example
interface Pessoa {
    id: number;
    nome: string;
    sobrenome: string;
    idade: string;
    pais: string;
}

let store = new PessoaStore();

let grid:DataGrid<Pessoa> = new DataGrid<Pessoa>()
    .setColumns([
        {name: "nome", title: "Nome", sortable: true, width: 25},
        {name: "sobrenome", title: "Sobrenome", sortable: true, width: 25},
        {name: "idade", title: "Idade", sortable: true, width: 25},
        {name: "pais", title: "País", sortable: true, width: 25}
    ])
    .addTableStyle(EGridStyle.TABLE_HOVER, EGridStyle.TABLE_BORDERED, EGridStyle.TABLE_STRIPED);

store.onChange.subscribe((pessoas: Pessoa[]) => {
     grid.setData(pessoas);
});

let pagination: Pagination<Pessoa> = new Pagination<Pessoa>("/dist/mv-starter/pessoa/pagination");
pagination
    .setStore(store)//o Pagination atribuirá dados à store a cada nova resposta de requisição
    .loadPage({page: 0, size: 3})

//Exemplo de passagem de parâmetros para ordenação
grid.onSortingChange.subscribe((cols) => {
    let sort: any[] = [];
    cols.forEach((c: IDataGridColumn) => {
        let direction = (c.sortingDirection == EDataGridSortingDirection.ASCENDING) ? 'asc' : 'desc';
        sort.push({"property": c.name, "direction": direction});
    });
    pagination.loadPage({
        page: pagination.getLastPaginationRequest().page,
        sort: sort
    });
})

Methods


calculateVisiblePageNumbers()

Calcula os números das páginas que devem ser exibidos nos links da paginação. O cálculo é baseado na propriedade Pagination.visiblePageNumbersTotal, que diz a quantidade de links que deve ser exibida.


getLastPaginationRequest()

Retorna os dados da última requisição realizada.

Returns:
Type
IPaginationRequest

getLastPaginationResult()

Retorna o último resultao de paginação obtido do servidor

Returns:
Type
IPaginationResult.<T>

loadPage(params, p_link)

Carrega uma nova página de acordo com os parâmetros informados.

Parameters:
Name Type Description
params IPaginationRequest

Caso a propriedade IPaginationRequest#size do parâmetro params não seja informada, o último valor informado para esta propriedade será usado, caso não tenha sido informado ainda, o valor padrão será utilizado (Pagination.pageSize).

p_link string

Caso o parâmetro p_link não seja informado, o valor da propriedade Pagination#baseURL será utilizado.

Returns:
Type
this

needsRecalculateVisiblePageNumbers()

Verifica a necessidade de se recalcular os números das páginas exibidas nos links de paginação.


nextVisiblePageNumbers()

Calcula os próximos números que devem ser exibidos nos links de paginação.


onPaginationResultReceived(paginationResult)

Executado cada vez que uma nova requisição é respondida. Emite o evento que indica que uma nova página foi carregada.

Parameters:
Name Type Description
paginationResult IPaginationResult.<T>
See:
  • Pagination#onPageLoad

prepareSortingParams(params)

Altera os parâmetros de ordenação da requisição para se adequarem aos esperados pelo Spring Data.

Parameters:
Name Type Description
params IPaginationRequest
Returns:
Type
IPaginationRequest

previousVisiblePageNumbers()

Calcula os números anteriores que devem ser exibidos nos links de paginação.


requestPage()

Carrega uma página de acordo com o parâmetro informado.


setPaginationInfoTemplate()

Adiciona o template que será utilizado para exibir informações sobre a paginação. A string passada como template deverá ter o seguintes placeholders: {from} - Exbirá o número do primeiro registro da página {to} - Exibirá o número do último registro da página {of} - Exibirá o total de elementos da paginação

Example
pagination.setPaginationInfoTemplate("Exibindo {from} - {to} de {of}");

setStore(store)

Parameters:
Name Type Description
store IStore.<T>
Returns:
Type
this

Configura o total de links que devem ser exibidos na paginação (links com números das páginas)

Parameters:
Name Type Description
total number
Returns:
Type
this