0

次の単純な要件に従って、ポケットベルを実装する最良の方法を探しています。

こんなページが欲しい

 <Pager 1 2 3 4 ...>

 <Partial View>

私のアクションコントローラーは次のようになります...

    public PartialViewResult DisplayRecordDetails(int recordNumber)
    {
        MyRecord mr = GetRecord(recordNumber);
        return PartialView(mr);
    }

「1」 (ページ インデックス = 1) をクリックすると、DisplayRecordDetails アクション メソッドにパラメーターとして 1 を渡し、レコード 1 の部分ビューを読み込みます。

「2」(ページ インデックス = 2) をクリックすると、DisplayRecordDetails アクション メソッドにパラメーターとして 2 を渡し、レコード 2 を含む部分ビューを読み込みます...

総アイテム数情報と現在のページ インデックス情報を自由に使用できます。この情報を使用してページャーを動的に生成するにはどうすればよいですか?

ページャー ライブラリ/ヘルパーを検索してみましたが、それらはすべてグリッド用です。自分の状況でそれらをどのように使用できますか? 私はグリッドを持っていません。ページ番号に応じて動的にロードする必要がある部分ビューがあります。

4

1 に答える 1

1

すべての ID 番号を含むビュー モデルを設計できます。

public class MyViewModel
{
    // the currently selected id
    public int Id { get; set; }

    // a list of available ids
    public int[] Ids { get; set; }
}

次に、データベースなどにクエリを実行し、使用可能なすべての ID のリストを取得するコントローラー アクションを用意します。

public ActionResult Index(int? id)
{
    var model = new MyViewModel
    {
        Id = id ?? 0,
        Ids = new[] { 563, 845, 845 } // those will come from your datasource
    };
    return View(model);
}

対応するビューで、これらの ID をループしてリンクを生成できます。

@model MyViewModel
<div>
    @Html.Action("DisplayRecordDetails", new { recordNumber = Model.Id })
</div>
@for (var i = 0; i < Model.Ids.Length; i++) 
{
    <span>@Html.ActionLink((i + 1).ToString(), "Index", new { id = i })</span>
}
于 2012-03-12T08:32:27.023 に答える