MVC3 и таблица и как генерировать - PullRequest
2 голосов
/ 24 января 2012

У меня есть список <> элементов, которые я хочу отобразить в таблице из 3 столбцов.Итак, 3 предмета в ряду.Как лучше всего сделать это в приложении MVC3?Я конвертирую из приложения Asp .Net, где я создал таблицу в коде, а затем просто отобразил таблицу.

Должен ли я вернуть список <> в представление и в представлении каким-то образом создатьячейки таблицы и строки?Объекты, которые я возвращаю, имеют такие вещи, как описание, URL изображения, виды и т. Д. В таблице будут отображаться фотографии.

Ответы [ 3 ]

2 голосов
/ 24 января 2012

Я только что выпустил плагин jQuery, который поддерживает MVC3 (вы можете использовать модели представлений), который генерирует таблицу для вас.

https://github.com/jgauffin/Griffin.Table

Установить пакет

install-package griffin.table.mvc3

Создание модели вида (Models\User.cs)

public class User
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Создание представления (Views\Home\Index.cshtml)

@model GriffinTableViewModel<DemoProject.Models.User>
@{
    ViewBag.Title = "Home Page";
}

@using (Html.GriffinTableForm("myTable", new{action = "Items"})) {}

@Html.GriffinTable("myTable", Model)

<script type="text/javascript">
    $(function () {
        $('#myTable').griffinTable({ fetchAtStart: true, pageManager: $.griffinTableExtensions.pageManagers.showMoreLinkPager });
    });
</script>

Создайте два действия в вашем контроллере (HomeController)

public ActionResult Index()
{
    return View();
}

public ActionResult Items(GriffinTableAjaxRequest model)
{
    var users = new List<User>();
    for (int i = 0; i < 50; i++)
    {
        users.Add(new User {Id = i + 1, FirstName = "first" + i, LastName = "last" + i});

    }

    // [.. do sorting here using model.SortColumn and model.SortOrder ..]

    var pagedResult = users.Skip((model.PageNumber - 1)*model.PageSize).Take(model.PageSize);
    return this.GriffinTable(pagedResult, users.Count);
}

Существует четыре примера использования реализации здесь

1 голос
/ 12 июня 2013

MVC3 имеет класс WebGrid, который отображает таблицы:

@{
    if (!this.Model.Items.Any())
    {
        <div>No records found.</div>
    }
    else
    {
        var grid = new WebGrid(this.Model, 
            canPage: false);

        @grid.GetHtml();
    }
}
1 голос
/ 24 января 2012

Здесь - хорошее решение из блога Фила Хаакеда, использующее табличный шаблон, хотя это MVC2, поэтому, если вы используете бритву, не очень хорошо.

Вы также можете выбрать "быстрое и грязное "решение, просто перебирая List <> в представлении и выплевывая HTML оттуда.Скотт Гу дает обзор того, как это сделать с Razor здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...