2013-06-25 4 views
1

У меня есть вид asp.net C# MVC Razor, который позволяет пользователю изменять единицы для полей ввода от метрики до имперского. Есть около дюжины ярлыков, которые все нужно менять одновременно с одним и тем же текстом, без исключений («мм» => «дюйм» и визовый стих).Группировка идентичных меток и изменение текста вместе - C#/Javascript

Поскольку сетка dot net требует, чтобы каждый элемент имел уникальные поля ID, я пытаюсь найти другой способ сгруппировать их все вместе и изменить их на стороне клиента.

Кажется глупым дать каждому уникальный идентификатор и вызывать каждый отдельно в инструкции if/then для переключения измерительных систем, когда они идентичны. Там должен быть лучший путь.

Я попытался использовать @ViewBag, но обнаружил, что javascript может читать только значение и не может изменить его на стороне клиента.

@ Html.Label ("display_units", "мм", новые {ID = "lbl_units"})

Спасибо за вашу помощь и предложения.

ответ

2

Дайте вашим лейблам общий класс css, например «дисплеи». Затем из кода Javascript вы можете использовать jQuery, чтобы найти все метки этого класса и изменить текст:

$(".display-units").text('mm'); 
+0

Простой! Это то, что я искал. Для тех, кто использует это, обязательно закройте цитату. $ Текст ('') мм ("Display-единиц.."); –

+0

Упс. Закрыто сейчас. –

0

KnockoutJS был написан для решения этой проблемы, т. Е. Привязки вашей viewmodel к вашему представлению.

+0

Полезно знать. Я должен добавить это в свой список вещей, чтобы учиться. –

+0

Это очень просто и полезно при решении этой конкретной проблемы. В отличие от других фреймворков, он не пытается делать ВСЕ, всего одна вещь очень хорошо. –