Как составить таблицу MVC HtmlHelper из списка объектов

Попытка обобщенного списка (который не зависит от Вас имеющий доступ к внутренним инструментам Google):

  1. запросы Parellelize (например, разбивают единственный запрос в к меньшим наборам)
  2. Асинхронный (делают максимально как можно больше асинхронным, например, не заблокирует запрос пользователя)
  3. Память / кэш (Дисковый ввод-вывод является медленным, сохраните максимально как можно больше в памяти)
  4. , Предварительно вычисляют (Действительно максимально очень работайте перед рукой, не ожидайте пользователя для выяснения данные/обработку)
  5. Забота о Вашем HTML фронтенда (см. Yslow и друзей)
6
задан David 11 December 2009 в 22:54
поделиться

3 ответа

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

На основе атрибута BindAttribute в MVC 1.0 (взглянув на исходный код) я создал атрибут TableProperty.

1224] Это позволило мне украсить мой объект домена этим атрибутом ...

[TableProperty(Include="Property1,Property2,Property3")]
public partial class MyObject
{ ...

Затем внутри BuildTableHeader я использовал отражение, чтобы получить свойства объекта и сопоставить каждое свойство с разрешенным списком.

private static void BuildTableHeader(StringBuilder sb, Type p)
{
    sb.AppendLine("<tr>");

    TableProperty tp = p.GetCustomAttributes(typeof(TableProperty), true)[0];

    foreach (var property in p.GetProperties())
        if (tp.IsPropertyAllowed(property.Name))
            sb.AppendFormat("<th>{0}</th>", property.Name);

Обратите внимание, что это решение сработало для меня в моем небольшом приложении, однако, я буду больше смотреть на MvcContrib's Grid для лучшей реализации.

1
ответ дан 17 December 2019 в 02:29
поделиться

Looks good so far, but Gil Fink may have already done the work for you here: http://blogs.microsoft.co.il/blogs/gilf/archive/2009/01/13/extending-asp-net-mvc-htmlhelper-class.aspx

4
ответ дан 17 December 2019 в 02:29
поделиться

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

1
ответ дан 17 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: