Как сделать отступ в значениях MultiSelectBox? - PullRequest
4 голосов
/ 13 июня 2011

У меня проблемы с созданием предметов с отступами в Razor MultiSelectBox.

Отлично работает, когда я вручную пишу HTML:

<select name="testfoo123" multiple="multiple" size="15">
    <option value="PARENT1">Parent</option>
    <option value="CHILD1">&nbsp;I am indented</option>
    <option value="CHILD2">&nbsp;I am indented</option>
    <option value="PARENT1">Parent2</option>
    <option value="CHILD1">&nbsp;I am indented</option>
    <option value="CHILD2">&nbsp;I am indented</option>
</select>

HTML-помощники Razor, однако, буквально отображают предшествующий неразрывный пробел в форме. Как и ожидалось, буквенные пробелы '' для отступа полностью игнорируются.

Код, который я использую для создания поля множественного выбора, выглядит следующим образом:

@Html.ListBoxFor(model => mySelectedValues, new MultiSelectList(myValues), new { size = "15" })

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Я нашел решение.Во-первых: поле множественного выбора, вероятно, не лучший выбор для древовидного элемента управления, но я оставлю это решение программисту.

Решение: Добавьте буквальный символ неразрывного пробела.Они не фильтруются, но эквивалент HTML (как и обычный символ пробела):.

const char nonBreakingSpace = '\u00A0';

С каждым символом добавляется каждый дочерний элемент.Используя отдельный список в качестве примера:

var sendMeToTheHtmlHelper = new List<String>();
foreach(String yourString in yourCollection) {
    // If this element is a child and needs indentation:
    sendMeToTheHtmlHelper.Add(nonBreakingSpace + location);
    // else just add as normal
}
0 голосов
/ 14 июня 2011

Встроенные помощники HTML на веб-страницах и в MVC автоматически кодируют все входные значения в HTML.Я совершенно уверен, что нет никакого способа заставить ваш сценарий работать с помощью встроенного помощника.

К счастью, однако, весь исходный код этих помощников доступен на сайте CodePlex как часть версия исходного кода MVC .Вы можете взглянуть на этот исходный код и написать собственный помощник, который лучше подходит для вашего сценария с отступами.

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