Используя IDisposable чтобы полоса стол


Каковы ваши мысли о использовании интерфейс IDisposable в полоску HTML-таблицу, как так? Это вопиющее злоупотребление интерфейс IDisposable, но это позволяет использовать счетчик В С помощью(){} блок, который дает четкое блока в разметке.

public class StripeCounter : IDisposable
{
    private string cssClass = "stripe";

    private int counter = 0;

    public StripeCounter(){}

    public StripeCounter(string cssClass)
    {
        this.cssClass = cssClass;
    }

    public MvcHtmlString Stripe()
    {
        return MvcHtmlString.Create(counter++ % 2 == 1 ? cssClass : string.Empty);
    }

    public void Dispose() { }
}

А потом разметка

@using (var counter = new StripeCounter())
{
    foreach (var item in Model)
    {
    <tr class="@counter.Stripe()">
        <td>
            ...
        </td>
       ...
    </tr>
    }
}

Что касается замечаний о JavaScript в полоску таблице:

JavaScript-это для поведения и чередующиеся строки в таблице не поведение, их стиль, так что пока это можно сделать на клиенте, это кажется мне то, что должно быть сделано на сервере. Например, если кто-то скрипты отключены, они бы еще видеть чередование в CSS, а не JavaScript чередование.



315
2
задан 29 августа 2011 в 08:08 Источник Поделиться
Комментарии
1 ответ

Не делай чередование на сервере. Не делаем разметки при помощи JavaScript. Так как это стиль, делать разметки с помощью CSS.

5
ответ дан 2 ноября 2011 в 02:11 Источник Поделиться