Как я могу сделать пейджинг в asp.net mvc3? - PullRequest
0 голосов
/ 22 сентября 2011

Я работаю над приложением asp.net mvc3 и получаю много записей из базы данных. Сначала я хочу отобразить только 10 записей, затем пользователь может нажать на кнопку, чтобы просмотреть следующие 10 записей и т. Д. Как на стене Facebook, публикующей больше записей.

Как я могу реализовать эту вещь в своем приложении, используя jQuery и ajax?

Как я могу управлять отображением данных в режиме просмотра с помощью подкачки?

Я использую это, чтобы получить 10 записей, но я хочу отобразить все записи, используя кнопку больше записи

var Entity = (from a
    in context.Data
    where <Condition>
    select a).Take(10);

Ответы [ 4 ]

1 голос
/ 22 сентября 2011

Следующие статьи должны дать вам представление:

http://weblogs.asp.net/andrewrea/archive/2008/07/01/asp-net-mvc-quot-pager-quot-html-helper.aspx

http://weblogs.asp.net/gunnarpeipman/archive/2010/02/21/simple-pager-for-asp-net-mvc.aspx

С другой стороны, вы можете реализовать это так:

Получите пакет nuget с именем TugberkUg.MVC

Тогда ваш контроллер должен выглядеть следующим образом:

    public ActionResult Index(int page = 0) {

        const int pageSize = 10;

        #region _filter the model

        IQueryable<myModel> model = _myrepo.GetAll()

        #endregion

        #region _convert the model to paginatedList

        var paginatedModel = 
            new TugberkUg.MVC.Helpers.PaginatedList<myModel>(model, page, pageSize);

        #endregion

        return View(paginatedModel);
    }

И вот как должен выглядеть ваш контроллер:

@model TugberkUg.MVC.Helpers.PaginatedList<myModel>

@foreach(var item in Model) { 

     <p>@item.id</p>

}

Вам также нужно работать с пейджером, и вот пример для вас:

ASP.NET MVC PaginatedList Pager - ставить мудрый "..." после определенной точки

Этот класс TugberkUg.MVC.Helpers.PaginatedList предоставит все необходимые поля для пейджера.

0 голосов
/ 23 сентября 2011

Я бы предложил использовать Telerik MVC Control. Они действительно просты в использовании, мощны и бесплатны.

www.telerik.com

0 голосов
/ 22 сентября 2011

Если вы используете Webgrid для отображения данных, то будет работать rowperpage.

 var grid = new WebGrid(source: Model, selectionFieldName: "SelectedRow", rowsPerPage: 10, canPage: true, canSort: true);
0 голосов
/ 22 сентября 2011

Мне неизвестна какая-либо библиотека .net, которая будет делать для вас нумерацию страниц из коробки, поэтому я предложу вам решение «сделай сам», чтобы вы подумали.

Как я могу реализовать эту вещь в моем приложении, используя jquery и ajax?

Вероятно, разумно иметь специальный контроллер для запросов ajax. Просто создайте отдельную область (Ajax) и отправьте ваши запросы Ajax на тот URL-адрес, который вы создали.

Как я могу управлять отображением данных в режиме просмотра с помощью подкачки?

Настройка контроллера, который принимает параметр "page".

public ActionResult GetData (int? Page) { // страница допускает значение по умолчанию

// Do your query here to get the specific page.

}

Я не уверен, что вам нужна дополнительная информация, кроме этой. Если бы я пытался сделать то, что вы делали, это то, что я бы сделал. Надеюсь, это поможет.

...