Хочется, чтобы можно было сгенерить форму из XML файла. Т.е. в XML описываю что-то типа один label, check box с такими-то значениями и т.д.
Далее по этому xml-нику будет генерится форма!
Возможно ли это? Если да, то как?
Можно так сделать.... Я делал так — в ХМЛ файле писал полностью ХТМЛ код, а потом в зависимости от ситуации подгружел данный код в иннерХТМЛ, например ТД... Но без АЯКСа не обойтись....
Ещё есть вариант описать всё в обычных ХТМЛ файлах и держать на сервере в определённой директории... Ну и в зависимости от потребности подгружать текст из файла в иннерХТМЛ того же контрола.... Так наверное даже легче... Но опять же — потребность в АЯКСе
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Olal, Вы писали:
O>Хочется, чтобы можно было сгенерить форму из XML файла. Т.е. в XML описываю что-то типа один label, check box с такими-то значениями и т.д.
O>Далее по этому xml-нику будет генерится форма!
O>Возможно ли это? Если да, то как?
Я реализовал это следующим образом:
в базе имеются таблицы:
1. forms
form_id ID Description
2. fieldsets
fieldset_id form_id ID label order
3. fields
field_id fieldset_id field_type_id ID text order
4.fields_types
field_type_id handle
5. field_items
field_item_id field_id ID value
Всё это собирается во view
и в конечном результате получается табличка, приблизительно такая:
form_id fieldset_id fieldset_lable fieldset_order, field_id, field_text field_order, field_item ...
думаю будет понятно, как оно в SQL'e выглядит.
Из DataSet'a получаю XML и накладываю на него XSL, что бы получить древовидную структуру (нужно для процесса) выглядит приблизительно так:
<form id="FORM_01">
<fieldset id="FL01" lable="Login:">
<field id="F01" text=""/>
</fieldset>
<fieldset id="FL02" lable="Birthday">
<field id="DAY" text="" type="DropDownList">
<item>1</item>
...
<item>31</item>
</field>
<field id="Month" text="" type="DropDownList">
<item>Jan</item>
...
<item>Dec</item>
</field>
<field id="F02" type="TextBox" Text="2005"/>
</fieldset>
</form>
После чего, накладывается ещё один XSL который это уже и превращает в HTML.
Обьясню зачем, я делал в две итерации: Дело в том, что очень часто приходится использовать визарды, т.ч. я разбиваю ещё и на <panel></panel>, и храню это во VIEWSTATE, и в зависимости от потребрости биндя необходимые параметры к парсеру XSLT получаю HTML нужной мне панели.
Все контролы runat="server".
А теперь о проблемах: Как "красиво" подписыватся на события — не придумал пока.
Если кто что-то дельное скажет — буду очень рад совету.
В конечном итоге, собираюсь это всё в Custom Control вынести.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>