PagedList MVC для получения данных из базы данных на основе размера страницы

Я добавил PagedList в свой проект, у меня есть окно поиска, которое в основном вызывает функцию для получения значений из базы данных, мой Pagedlist работает нормально, но я не уверен, получает ли он все данные из базы данных или только на основе pageSize. Например, у меня есть всего 30 записей, и я добавил размер страницы как 10, так что просмотр покажет 10 записей одновременно и 3 страницы. Теперь этот PagedList получит все 30 значений или только 10 впервые, а затем, если пользователь нажмет на страницу 2, он получит следующие 10 записей.

Допустим, у меня есть тысяча записей, поэтому я не хочу, чтобы система загружала их все, я просто хочу загрузить их в соответствии с размером страницы, и когда пользователь нажимает на вторую страницу, он получает следующие записи, надеюсь, моя точка зрения ясна, ниже моя код:

Посмотреть:

@model PagedList.IPagedList<BackendIntegration.Models.VendorAllTransactions>
@using PagedList.Mvc;
@if (Model != null)
{
<hr />
<div class="form-horizontal">
    <table class="table">
        <tr class="bg-primary">
            <th>
                @Html.DisplayName("Date")
            </th>
            <th>
                @Html.DisplayName("Type")
            </th>
            <th>
                @Html.DisplayName("Amount")
            </th>
            <th>
                @Html.DisplayName("User Name")
            </th>
            <th>
                @Html.DisplayName("Vendor Name")
            </th>
            <th>
                @Html.DisplayName("POS ID")
            </th>
        </tr>

        @foreach (var trans in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(model => trans.Date)
                </td>
                <td>
                    @Html.DisplayFor(model => trans.TypeDesc)
                </td>
                <td>
                    @Html.DisplayFor(model => trans.Amount)
                </td>
                <td>
                    @Html.DisplayFor(model => trans.UserName)
                </td>
                <td>
                    @Html.DisplayFor(model => trans.VendorName)
                </td>
                <td>
                    @Html.DisplayFor(model => trans.POS_ID)
                </td>
            </tr>
        }
    </table>
    <br />
    <div id='Paging' style="text-align: center">
        Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber)
        of @Model.PageCount

        @Html.PagedListPager(Model, page => Url.Action("VendorAllTransactions", new { page }))
    </div>  
</div>
}

контроллер:

public ActionResult VendorAllTransactions(VendorAllTransactionView vw, int? page)
        {
            int pageSize = 10;
            int pageIndex = 1;
            pageIndex = page.HasValue ? Convert.ToInt32(page) : 1;

            IPagedList<VendorAllTransactions> model = null;

            try
            {
                model = sales.VendorAllTransactions(vw).ToPagedList(pageIndex, pageSize);
            }
            catch (Exception exp)
            {
                ModelState.AddModelError("", exp.Message);
            }
            return View(model);
        }

sales.VendorAllTransactions(vw) это вызов функции с запросом, который будет возвращать записи. Но это явно возвращение всех записей. Pagedlist получает только необходимое количество строк (размер страницы) или получает все.???

Пожалуйста, порекомендуйте. Спасибо

0 ответов

Другие вопросы по тегам