Я работаю с сторонней системой для реализации некоторых форм на веб-сайте.Правильный шаблон для передачи данных дочерним элементам управления в серверном элементе управления
Сторонняя система предоставляет мне определения XML для этих форм. , например.
<form>
<segment>
<label>The header</label>
<fields>
...
<field>
<id>field_Dob</id>
<type>Date</type>
<label>Date of Birth</label>
<required>1</required>
</field>
...
</fields>
</segment>
...
</form>
Я разбираю этот XML в серверном управлении и программно генерирует дерево элементов управления. Метки элементов управления передаются в XML.
Это часть нашего предложения «ввести» небольшие тексты справки в эту форму.
В идеале я хотел бы передать эти тексты справки из разметки верхнего уровня управления, чтобы не-разработчики (HTML monkies) могли изменять тексты справки и связывать их с полем по его идентификатору. Что-то вроде этого
<controls:MyCrazyForm runat="server">
<helpTexts>
<helpText for="field_Dob">
Some rambling nonsense to do with the DOB field
</helpText>
...
</helpTexts>
</controls:MyCrazyForm>
Элементы управления анализируются рекурсивно.
Форма создает набор полей для каждого сегмента, поля создают много полей FieldXXX (где XXX = дата, текст, combobox и т. Д.) В зависимости от типа данных.
Типы FieldXXX создают div, а затем несколько стандартных элементов управления .net (TextBox, DropDownList и т. Д.), Чтобы фактически отобразить себя. Именно в этот момент внутри содержащего div мне нужно вывести текст справки.
Мой вопрос
Что такое «лучший» способ получить эти тексты из-под контроля формы верхнего уровня этих дочерних элементов управления, которые являются 3 или 4 уровня глубже в дереве управления.
На странице будет только одна из этих форм. Должен ли я сделать форму верхнего уровня как Singleton и получить ее так ...?
Должен ли я передать ссылку на форму в каждый элемент управления вплоть до дерева (это кажется грязным)?
Я в милях от цели архитектуры этой (хотя она работает отлично в данный момент), и я должен посмотреть на другой способ реализации?
Благодаря
Спасибо Озан. Ваше решение кажется мне самым чистым. Это позволяет мне хранить все «как есть» и вводить текст справки в мой основной документ XML. хорошая работа! –