2015-03-12 5 views
2

Как вы можете добавить класс CSS, а не явный встроенный стиль, в элемент управления пользовательского интерфейса Kendo MVC?Kendo UI Razor - Как добавить класс CSS в Html.Kendo(). Автозаполнение(), Button(), MultiSelect() и другие поля ввода?

Независимо от того, что мы пробовали, мы не можем добавлять классы CSS в HTML-помощники Kendo UI. Он добавляет только свой класс «k-». Вы можете добавить атрибут стиля с явной ширины и стиля, , но не класс,

.HtmlAttributes(new { @class = "please-dont-hard-code-widths" }) 

или

new HtmlAttributes(new {new { @class = "please-dont-hard-code-widths" } }) 

вообще ничего не делать вообще.

** Обновление, эта проблема также возникает с @ Html.EditorFor(), когда Kendo является частью проекта, он не будет принимать классы, хотя в документации говорится, что это так. Мы должны использовать явные типы ввода, такие как TextBoxFor(), который побеждает, когда модель модели управляет типами форм.

Другие регулярные помощники HTML-справки Razor делают это хорошо, но не Kendo. Кажется невозможным, что Telerik не будет поддерживать что-то основное для слоя отображения.

+0

К сожалению, существует ряд элементов управления, подобных упомянутым выше, которые по некоторым причинам не используют эти классы. Однако многие элементы управления, например, Grid. –

ответ

1

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

примечание, я использовал MVC5.

@Html.EditorFor(m => m.ConfirmEmail, new Dictionary<string, object> { { "class", "form-control" } }) 

@Html.EditorFor(m => m.MobileNumber, new { htmlAttributes = new { @class = "form-control validateNumericInput", @aria_describedby = "mobile-addon" } })