0

前と次のリンクを含める方法に関するページの表示に問題があります...これらのコードを使用してASP.Net MVC 4を使用しています:

見る:

<div class="pagination">
    <ul>
        @for (int i = 1; i <= ViewBag.PagesCount; i++)
        {
            <text>
                <li>@Html.ActionLink(i.ToString(), "Index", new { pagee = i })</li>
            </text>
        }
    </ul>
</div>

コントローラ:

int offset = 15;

int pagecount = ((pagee - 1) * offset);

int totalPages = 0;
int totalItems = 0;

try
{       
    totalItems = requestform.Count();
    while (totalItems > 0)
    {
        totalItems -= 15;
        totalPages++;
    }
    ViewBag.PagesCount = totalPages;
    return View(requestform.Skip(pagecount).Take(offset).ToList());
}
catch
{
    while (totalItems > 0)
    {
        totalItems -= 15;
        totalPages++;
    }
    ViewBag.PagesCount = totalPages;
    return View(requestform.Skip(pagecount).Take(offset).ToList());
}

これで私を助けてください。

4

4 に答える 4

2

この小さな拡張PagedListについてどう思いますか?

于 2013-03-18T07:08:56.780 に答える
0

最近、クールなコントロール、ツールチップ、最初、次、最後、前のこのmvc 4ページングナゲットパッケージ、デモWebページを確認して見つけました

于 2013-06-17T11:38:00.120 に答える
0

ページにページングを追加するには、まず PagedList NuGet パッケージをインストールします。次に、Index メソッドをさらに変更し、Index ビューにページング リンクを追加します。

このリンクを確認してください http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an- asp-net-mvc-アプリケーション

于 2013-03-18T07:04:09.183 に答える
0

PagedList も NuGet パッケージ マネージャー経由で追加することをお勧めします。

コントローラーを次のように変更します。

public ActionResult Index(int? page)
        {
            var dbtable = db.DbTable.Include(s => s.ID).OrderBy(s => s.StyleName); //ensure records are sorted.
            if (Request.HttpMethod != "GET")
            {
                page = 1;
            }
            int pageSize = 2;
            int pageNumber = (page ?? 1);
            return View(dbtable.ToPagedList(pageNumber, pageSize));
        }

ビューで置換:

@model IEnumerable<MyMvcApplication.Models.dbtable>

@model PagedList.IPagedList<MyMvcApplication.Models.dbtable>

次のようなコードを置き換えます

    <th>
            @Html.DisplayNameFor(model => model.ID)
        </th>

<th>
            @Html.DisplayNameFor(model => model.First().ID)
        </th>

</table>タグの後のページの最後にこれを追加します。

<div>
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
    @if (Model.HasPreviousPage)
    {
        @Html.ActionLink("<<", "Index", new { page = 1})
        @Html.Raw(" ");
        @Html.ActionLink("< Prev", "Index", new {page = Model.PageNumber - 1})
    }
    else{
     @:<<
     @Html.Raw(" ");
        @:< Prev   
    }

    @if (Model.HasNextPage)
    {
        @Html.ActionLink("Next >", "Index", new {page = Model.PageNumber + 1})
        @Html.Raw(" "); 
        @Html.ActionLink(">>", "Index", new {page = Model.PageCount})
    }
    else{
     @:Next >
     @Html.Raw(" ")
@:>>   
    }
</div>
于 2013-06-10T14:47:48.163 に答える