6

ページ ナビゲーション用の HTML ヘルパーはありますか。例えば。表示するレコードが 1000 件ある場合、フィルタリングされたコレクションの下に前の 1 2 3 4 ... などの次のリンクを表示したいと考えています。

何か知ってる人いる?

4

4 に答える 4

3

JSON データからデータのテーブルを作成する場合は、YUI (Yahoo UI ライブラリ) DataTable コンポーネント ( http://developer.yahoo.com/yui/datatable/ ) を強くお勧めします。ページングは​​非常にうまく機能し、最初にレコードセット全体を返し、次にそのすべてをクライアント側でページングするか、サーバーからページセットを返すオプションがあります。

おそらくあなたのシナリオには合わないでしょうが、私はそれについて言及したいと思いました.

于 2008-10-28T15:45:42.507 に答える
1

ASP.NET MVC を使用したチェックアウトページング、PageListの反撃とページ HTML ヘルパーの作成

于 2008-10-28T10:23:02.377 に答える
0

Dynamic Data for MVC サンプル アプリケーションにページング グリッドがありますが、グリッドは手動でレンダリングされています。データは PagedList を使用しています。これは Rob Conery から提供されたものです (Conery は ScottGu から入手したと思います)。

MVC のページ グリッド ヘルパーがどのように見えるかについて考えていました...

于 2008-10-28T05:29:03.357 に答える
0

これまでにページングのために行ったことは、Pager コントロールを作成することです。ページング URL、更新用の html 要素 ID、ページ番号、ページ サイズ、および合計数を取得します。

ページング URL はコントローラー/アクションの形式であり、アクションは html 文字列 (レンダリングされたデータのページ) を返します。

ページャーは、ページの JavaScript リンクのリストを追加します。これらのリンクは、ページング URL にヒットする jQuery ベースの ajax 関数を呼び出します。ページをクリックするたびに、html 要素の現在のコンテンツが ajax 呼び出しの結果に置き換えられます。このようなもの:

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>" );
}

JavaScript はページング URL に投稿するため、アクションは次のようなことを行う必要があります。

int.TryParse( Request.Params[ "pageNumber" ], out page ) int.TryParse( Request.Params[ "pageSize" ], out size ) )

データ アクセス コンポーネントで結果を使用して、データ ページを取得し、html としてレンダリングして返します。

必要に応じて拡張できます。

于 2008-10-30T05:44:12.827 に答える