ASP.NET, XSLT и динамические элементы управления - PullRequest
0 голосов
/ 12 октября 2008

Я хочу использовать xml и xsl для создания элементов управления на странице asp.net.

В настоящее время у меня есть страница содержимого asp.net, которая содержит элемент управления xml. Когда страница загружается, загружается файл xml, а необходимый элемент извлекается и устанавливается как DocumentContent элемента управления xml, а TransformSource элемента управления xml устанавливается в соответствующий файл xsl.

В xsl-файле я хочу использовать шаблоны для создания элементов управления asp.net в зависимости от содержимого xml. Есть ли простой способ сделать это с помощью элемента управления xml на странице содержимого?

Ответы [ 3 ]

1 голос
/ 13 октября 2008

Зарегистрируйте пространство имен в своем XSL, чтобы в него можно было вставлять серверные теги .NET. Запустите XSL-преобразование для вашего XML. Запустите результат вашего преобразования через Page.ParseControls (). Это даст вам хорошую иерархию управления. Добавьте выходные данные этой функции в вашу коллекцию Controls (или коллекцию controls вашего заполнителя), и все готово.

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

0 голосов
/ 13 октября 2008

Я не знаю ни одного простого способа сделать это, но есть несколько систем, которые генерируют разметку aspnet на лету, а затем отправляют ее в среду выполнения aspnet из потока памяти ( или аналогичный).

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

0 голосов
/ 13 октября 2008

Сгенерированный вывод преобразования не анализируется для добавления на страницу в качестве набора элементов управления. Скорее сгенерированный вывод отправляется в ответ. Поэтому нельзя применить преобразование к элементу управления XML, который будет генерировать новые элементы управления.

Может быть способ создать результат преобразования и вызвать некоторый синтаксический анализ, который можно применить к странице, но который не будет соответствовать вашему «легкому» требованию.

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