powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN: вставить компонент внутрь HTML-кода.
4 сообщений из 4, страница 1 из 1
ZEN: вставить компонент внутрь HTML-кода.
    #37241606
Leviafan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Прошу помочь в решении проблемы:

Имеется веб-страница, представляющая собой ZEN-класс содержащая некий текст, отформатированный с помощью HTML. В некоторых участках страницы посреди текста необходимо вставить формы (текстовые поля, комбобоксы). Хочется пользоваться ZEN-компонентами вместо стандартных HTML-тэгов. Код страницы выглядит так:

Class pages.pageMain Extends %ZEN.Component.page
{
XData Contents [ XMLNamespace = " http://www.intersystems.com/zen" ]
{
<page>
<html>
содержимое
</html>
<page>
}
}

Как нужно вставлять ZEN-компоненты внутрь тэгов <html></html>?
...
Рейтинг: 0 / 0
ZEN: вставить компонент внутрь HTML-кода.
    #37241660
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leviafan27 ,

Произвольные компоненты можно вставить только в специальные контейнеры - группы , которые наследуются от класса %ZEN.Component.group .
Компонент <html> таковым не является.

PS: вставить компонент можно на стороне клиента и/или сервера.
Пример вставки на стороне клиента:

Class sqlru.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
  <button caption="Добавить кнопку" onclick="zenPage.addButton();"/>
  <group id="gr">
    <html id="html1">
      html 1
    </html>
    <html id="html2">
      html 2
    </html>
  </group>
</page>
}

ClientMethod addButton() [ Language = javascript ]
{
  var comp = zen('btnSave');
  if (comp) {
    zenPage.deleteComponent(comp);
  }

  comp = zenPage.createComponentNS('','button');
  comp.setProperty('id','btnSave');
  comp.setProperty('caption','Сохранить');

  zen('gr').addChildAfter(comp,zen('html1'),true);
  // или zen('gr').addChildBefore(comp,zen('html2'),true);
}

}

Больше примеров можно найти в ZEN Demo
...
Рейтинг: 0 / 0
ZEN: вставить компонент внутрь HTML-кода.
    #37242001
Leviafan27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А возможно ли как-нибудь вставлять компоненты в промежутках между тегами html, если открывающий тэг в коде находится внутри первого <html>, а закрывающий - внутри второго <html>? Например, нужно вставить комбо вовнутрь div:

<page>
<html id="html1">
<div style='padding-left:50px; padding-right:50px'>
</html>
<combobox label="label" displayList="disp1,disp2" valueList="val1,val2"/>
<html id="html2">
</div>
</html>
</page>

в этом случае при компиляции выдается ошибка, т.к. нет закрывающего тэга в html1
...
Рейтинг: 0 / 0
ZEN: вставить компонент внутрь HTML-кода.
    #37242030
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leviafan27 , зен-компоненты и теги две разные вещи, не стоит их путать...

Одним из подходов можно выбрать вариант с наличием скрытых элементов, которые сразу есть на странице, просто они сначала скрыты и показываются в нужный момент.
Т.о. ничего и никуда не нужно вставлять динамически.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN: вставить компонент внутрь HTML-кода.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]