ASP.NET MVC 3 Многоразовый шаблон отображения таблицы с бритвой - PullRequest
7 голосов
/ 02 марта 2011

Есть ли хороший способ создания шаблона табличного отображения в ASP.NET MVC3 с новым синтаксисом Razor?

В ASP.NET MVC 2 Фил Хаак писал в блоге о шаблонах табличного отображения . Есть ли лучший подход в ASP.NET MVC3?

EDIT:

Можно ли также визуализировать сетку на основе метаданных модели ? Поэтому я не хочу вручную определять столбцы с помощью API WebGrid, но с метаданными модели . Проблема, которую я вижу, заключается в том, что вам каждый раз приходится определять таблицу вручную с помощью API WebGrid. Я хочу иметь возможность иметь один вид таблицы, который можно использовать для повторного использования !

Edit: Так есть ли полезная практика для создания сеток с использованием метаданных модели?

Ответы [ 7 ]

7 голосов
/ 02 марта 2011

Вы можете использовать новую WebGrid в MVC3:

@{
    var grid = new WebGrid(Model);
    @grid.GetHtml();
}

И вы можете использовать вкладки jQuery: http://jqueryui.com/demos/tabs, для создания вкладок.

Извините, если меня неправильно поняливаш вопрос.

1 голос
/ 12 марта 2011

Я не использовал его много, но, насколько я понимаю, вы должны сначала настроить WebCrid MVC 3 перед его использованием. И вы не хотите настраивать таблицу в представлении, а вместо этого делаете это, используя атрибуты модели.

Если бы я сделал это, я бы сделал следующее:

  • Создайте свои пользовательские атрибуты, с помощью которых я буду украшать свою модель, чтобы определить, какие свойства являются столбцами, какие метки будут использоваться для заголовка столбца и все остальное, что вы хотите настроить.

  • Я сделаю статический класс со статическим методом, который принимает в вашей модели экземпляр, использует отражение, чтобы прочитать свойства и ваши пользовательские атрибуты, и оттуда он выплюнет WebGrid для использования в вашем представлении.

Вот как, но я скажу вам, почему я не сделал бы этого: в MVC вы украшаете свою модель для таких вещей, как валидация, и это здорово и декларативно. Но когда вы определяете сетку, это очень специфическая вещь. Конечно, вы можете использовать ViewModels, которые являются специфическими для вида, но я не думаю, что конфигурация макета таблицы принадлежит модели. То, как работает WebGrid или Telerik's Grid до его работы, уже хорошо декларативно.

Я рассказываю, что WebGrid и Telerik's Grid уже используют лучшие практики, предлагая декларативные, гибкие интерфейсы для определения структуры и поведения таблиц. Каждая таблица отличается от других, поэтому имеет смысл определить каждую таблицу. Вы говорите «от руки», но это далеко не так, поскольку решетки делают всю грязную работу за вас, вы просто говорите, что хотите (декларативное программирование).

0 голосов
/ 22 января 2013

Только что нашёл ответ, ища похожее решение. Я также надеялся на что-то многократно используемое, поэтому в итоге мы создали простой шаблон, основанный на ответе Калмана, и он выглядит так:

Посмотреть / DisplayTemplates / Table.cshtml

@model IEnumerable<object>
@{WebGrid grid = new WebGrid(Model);}
@grid.GetHtml()

Использование

@Html.DisplayForModel("Table")

Это также должно работать с метаданными модели для коллекции путем добавления [DataType("Table")] к свойству.

0 голосов
/ 17 марта 2011

Фил Хаак написал действительно классную статью в блоге о Templated Razor Delegates. HTML-помощник, который он пишет, прост и легок.

http://haacked.com/archive/2011/02/27/templated-razor-delegates.aspx

0 голосов
/ 17 марта 2011

Мне нравятся шаблоны jQuery много.Вам просто нужно передать объект JSON, и он сделает всю остальную работу.хорошо для сортировки, нумерации страниц и т. д.

0 голосов
/ 03 марта 2011

Вы можете также рассмотреть возможность использования компонентов Telerik Grid и Tabstrip, отметьте их демонстрации .

0 голосов
/ 02 марта 2011

Вы можете взглянуть на новый помощник WebGrid .

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