ASP MVC 3: Как применить стиль только к некоторым элементам раскрывающегося списка? - PullRequest
1 голос
/ 16 сентября 2011

У меня есть следующее требование. У меня есть выпадающий, который отображает детали машины Части с активным свойством, установленным как «ложь», должны отображаться жирным красным текстом, а остальные - обычным текстом.

Проблема в том, что класс SelectItem не имеет свойства html для установки этого, только помощник Dropdown, но он применяется ко всему списку, я просто хочу это для некоторых элементов.

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

У меня было это требование некоторое время назад.Хорошей новостью является то, что решение является простым.Плохая новость заключается в том, что она включает в себя копирование / вставку большого кода из источника MVC3.

Пожалуйста, найдите код , вставленный здесь , поскольку это действительно слишком много длявставить в строку.

Он состоит из интерфейса IHtmlAttributes (для объекта, который может переносить такие данные), класса SelectListItemWithAttributes (вы будете создавать объекты этого класса) и статического класса, в котором выпотребуется вставить множество методов расширения.

После того, как вы это сделаете, это довольно просто:

var item = new SelectListItemWithAttributes(new { @class = "inactive" });
item.Text = "Foo";
item.Value = "Bar";

Вы помещаете все это в любой IEnumerable<SelectListItemWithAttributes>, вызываете один из DropDownList семейство методов, вставленных в статический вспомогательный класс, и это все, что нужно.

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

Вы можете легко добиться этого с помощью jquery:

<script type="text/javascript">
    $(document).ready(function () {        
        $('#IdOfYourDropDown option:disabled').css('color', 'red');
    });
</script>

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

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