Pergunta

Há algum html ajudantes para navegação de página. por exemplo. se eu tiver 1000 registros para mostrar, eu quero mostrar o anterior 1 2 3 4 ... etc link Próximo coisas sob a coleção filtrada.

Alguém sabe de alguma coisa lá fora?

Outras dicas

Se você estiver criando uma tabela de dados a partir de dados JSON, eu recomendo o YUI (Yahoo UI Library) componente DataTable ( http://developer.yahoo.com/yui/datatable/ ). Ele faz a paginação muito bem e você tem a opção de devolver todo o conjunto de registros para começar e, em seguida, folheando que todos do lado do cliente ou retornando um conjunto paginado a partir do servidor.

Provavelmente não vai caber seu cenário, mas apenas pensei que eu iria falar dele.

Eu tenho uma grade de paginação na minha Dynamic Data para aplicação de exemplo MVC , mas a grade é processado mão. Os dados são usando PagedList, que vieram de Rob Conery (que por sua vez eu acho que tem que partir ScottGu).

Eu estive pensando sobre o que um ajudante-grid paginada pode parecer para MVC ...

O que eu fiz para paginação até agora é criar um controle de Pager, É preciso um url paginação, html elemento id para atualização, número de página, tamanho de página e contagem total.

O url paginação é do controlador de form / ação onde a ação retorna uma string html (página processada de dados)

O pager anexa uma lista de links javascript para as páginas. Esses links chamar uma função ajax baseado jQuery que atinge a url paginação. Cada página clique substitui o conteúdo atual do elemento HTML com os resultados da chamada ajax. Algo parecido com isto:

public string Render()
{
    var buffer = new StringBuilder( 1000 );
    buffer.AppendLine( @"<ul class=""datatable_pager"">" )
        .AppendLine( "\t<li>Additional Pages:</li>" );
    int numberOfPages = TotalItemCount % PageSize == 0 ? TotalItemCount / PageSize : TotalItemCount / PageSize + 1;

    for( int i = 0; i < numberOfPages; i++ )
    {
        AppendPageLink( buffer, i );
    }

    buffer.AppendLine( "\t</ul>" );
    AppendPagingJS( buffer );

    return buffer.ToString( );
}

private void AppendPageLink( StringBuilder buffer, int i )
{
    buffer.Append( "\t\t<li><a href=\"" )
    .Append( PagingLink.Replace( "$PAGE$", i.ToString( ) ) )
    .Append( "\">" )
    .Append( i.ToString( ) )
    .Append( "</a>" )
    .AppendLine( "\t\t</li>" );
}


private void AppendPagingJS( StringBuilder buffer )
{
    buffer.AppendLine( @"
        <script type=""text/javascript"">
        function page( page, size, updateElement )
        {
            $.post( '" + PagingUrl + @"',
                {
                    pageNumber: page, 
                    pageSize: size,
                },
                function(response) 
                {
                    $(""#"" + updateElement).html(response);
                },
                ""html""
            );
        }
        </script>" );
}

Os postos JavaScript para o url paginação, então a ação será necessário, em seguida, fazer algo como:

int.TryParse (Request.Params [ "pageNumber"], a seção) int.TryParse (Request.Params [ "pageSize"], o tamanho))

e usar os resultados com seus componentes de acesso de dados para pegar a página de dados, processá-lo como html e devolvê-lo.

Espero que ajude, posso expandir-lo, se necessário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top