Источники Umbraco Forms PreValue - PullRequest
       92

Источники Umbraco Forms PreValue

0 голосов
/ 19 февраля 2020

Я использую источник предварительного значения в форме Umbraco для отображения списка опций из таблицы БД. В разметке html я заметил, что столбец значений помещается как в значение списка, так и в метку следующим образом:

<input type="radio" name="3e56b737-c3db-4413-9099-844d002fc3c9" id="3e56b737-c3db-4413-9099-844d002fc3c9_4" value="Secondary">
<label for="3e56b737-c3db-4413-9099-844d002fc3c9_4">Secondary</label>

Я ожидаю, что входное значение будет ключевым столбцом и текст метки, который будет столбцом значения. Таким образом, похоже, что ключевой столбец полностью игнорируется при отображении списка. кто-нибудь еще сталкивался с этим? Я делаю что-то не так или есть какой-то другой способ получить значение ключевого столбца выбранного элемента списка?

1 Ответ

0 голосов
/ 20 февраля 2020

Хорошо, я узнал, как это исправить. Реализовано, что разметка контролируется частичным представлением в Views \ Partials \ Forms \ Themes \ default \ Fieldtypes \ FieldType.RadioButtonList.cs html и DropDownList.cs html.

Итак, строка, которая гласит:

<input type="radio" name="@Model.Id" id="@string.Concat(Model.Id,"_",i)" value="@pv.Value" 

необходимо прочитать:

<input type="radio" name="@Model.Id" id="@string.Concat(Model.Id,"_",i)" value="@pv.Id" 

ОДНАКО: это отлично подходит для значений полей из таблицы БД, но не будет работать для полей, в которых вы указали жестко закодированный список предварительных значений. Следовательно, для обработки обоих сценариев ios приведенная выше строка становится такой:

var valueId = pv.Id == "0" ? pv.Value : pv.Id;
<input type="radio" name="@Model.Id" id="@string.Concat(Model.Id,"_",i)" value="@valueId" 

Так что, если Id равен 0, он использует строковое значение, как и раньше (жестко заданные идентификаторы prevalue всегда равны нулю), в противном случае он использует Id из поля предварительного идентификатора исходного значения.

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

...