Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как передть параметры при обновлении ZEN-страницы / 16 сообщений из 16, страница 1 из 1
26.04.2010, 12:23
    #36598100
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
При вызове ZEN-страницы через URL передаются параметры, в XData для <form> указан параметр OnLoadForm="LoadSettings", в методе "LoadSettings" параметры из URL содержатся в свойствах страницы и присваиваются соотв. компонентам.
Всё хорошо, НО после обновления формы по таймеру установленные свойсва страницы и соотв. компоненты обнуляются.
Вопрос. Как правильно сохранить параметры из URL и передать их в обновлённую форму?
...
Рейтинг: 0 / 0
26.04.2010, 12:52
    #36598181
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshakобновления формы по таймеру
Как конкретно обновляется форма? Форма или таки страница целиком?
...
Рейтинг: 0 / 0
26.04.2010, 12:55
    #36598190
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
krvsa,

На странице есть только одна форма, обновление происходит автоматически.
...
Рейтинг: 0 / 0
26.04.2010, 12:58
    #36598202
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshak , т.е. обновляется таки страница. Про "атоматически" нужно подробнее... Код этого "обновления" можно увидеть?
...
Рейтинг: 0 / 0
26.04.2010, 13:00
    #36598213
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshakКак правильно сохранить параметры из URL и передать их в обновлённую форму?
Тут вопрос скорее всего нужно будет "развернуть" так:
- Как правильно сформировать новый УРЛ?
...
Рейтинг: 0 / 0
26.04.2010, 13:18
    #36598268
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
krvsa, вот код (несущественные детали удалены):

/// Created using the page template: Default
Class MyApp.UI.Settings Extends %ZEN.Component.page
{
...
Property ClientIP As %ZEN.Datatype.string(ZENURL = "IP");
...
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
...
<vgroup width="90%" align="center" valign="middle">
<form
id="frmSettings"
OnLoadForm="LoadSettings"
width="90%"
align="center"
layout="vertical"
cellStyle="padding: 3px;" >
...
<fieldSet
id="fieldSetOptions"
...
align="left"
cellStyle="padding: 6px;">
<checkbox caption="Show Messages" id="chkShowMsg"/>
...
</fieldSet>
...
<submit caption="Save Settings" onclick="zenPage.SaveSettings();"/>

</form>

Method LoadSettings(pKey As %String, ByRef pValues As %String) As %Status [ ZenMethod ]
{
set ip="", msg="1"
;
set ip=%page.ClientIP
if ip'="" {
d ##class(Utils).LoadOptions(ip, .msg)
d ..%SetValueById("chkShowMsg", msg)
}
}

Method SaveSettings() [ ZenMethod ]
{
set ip=%page.ClientIP
if ip'="" {
set msg=..%GetValueById("chkShowMsg")
...
d ##class(Utils).SaveOptions(ip,msg)
}
Quit
}
...
Рейтинг: 0 / 0
26.04.2010, 13:23
    #36598292
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshakkrvsa, вот код (несущественные детали удалены):

/// Created using the page template: Default
Class MyApp.UI.Settings Extends %ZEN.Component.page
{
...
Property ClientIP As %ZEN.Datatype.string(ZENURL = "IP");
...
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
...
<vgroup width="90%" align="center" valign="middle">
<form
id="frmSettings"
OnLoadForm="LoadSettings"
width="90%"
align="center"
layout="vertical"
cellStyle="padding: 3px;" >
...
<fieldSet
id="fieldSetOptions"
...
align="left"
cellStyle="padding: 6px;">
<checkbox caption="Show Messages" id="chkShowMsg"/>
...
</fieldSet>
...
<submit caption="Save Settings" onclick="zenPage.SaveSettings();"/>

</form>

Method LoadSettings(pKey As %String, ByRef pValues As %String) As %Status [ ZenMethod ]
{
set ip="", msg="1"
;
set ip=%page.ClientIP
if ip'="" {
d ##class(Utils).LoadOptions(ip, .msg)
d ..%SetValueById("chkShowMsg", msg)
}
}

Method SaveSettings() [ ZenMethod ]
{
set ip=%page.ClientIP
if ip'="" {
set msg=..%GetValueById("chkShowMsg")
...
d ##class(Utils).SaveOptions(ip,msg)
}
Quit
}

Через какое-то время форма сама собой "очищеется" и все компоненты (в примере выше это "chkShowMsg") инициализируются пустыми значениями.
...
Рейтинг: 0 / 0
26.04.2010, 13:32
    #36598331
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
Я понимаю так, что при перезагрузке страницы в URL отсутствуют параметры, т.е. их нужно как-то снова передавать в URL, или совсем отключить перезагрузку (как?). Может быть, как вариант, при первичной загрузке сначала заполнять какой-то объект (%session ?) и уже из него загружать компоненты?
...
Рейтинг: 0 / 0
26.04.2010, 13:48
    #36598367
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshakЧерез какое-то время форма сама собой "очищеется"
Т.е. никакого "таймера" и нет? Поскольку в коде я его не заметил...

Почему тогда статаешь что страница перезагрузилать?
...
Рейтинг: 0 / 0
26.04.2010, 13:48
    #36598369
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
статаешь - читать как "считаешь".
...
Рейтинг: 0 / 0
26.04.2010, 13:50
    #36598372
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshak , вот почитай ... Может такая же ситуация у тебя.
...
Рейтинг: 0 / 0
26.04.2010, 13:53
    #36598381
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
krvsa,

В моём коде никакого таймера нет, страница перегружается сама собой, при этом всякий раз выполняется функция "LoadSettings", в которой %page-параметры обнулены.
...
Рейтинг: 0 / 0
26.04.2010, 13:55
    #36598385
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshakВ моём коде никакого таймера нет, страница перегружается сама собой
Тогда читай советы по моей ссылке...
...
Рейтинг: 0 / 0
26.04.2010, 13:59
    #36598400
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
krvsa,

Конечно, можно поиграть с настройками и увеличить таймаут, но хотелось бы не зависеть от таймаута и как-то сохранять первичные значения...
...
Рейтинг: 0 / 0
26.04.2010, 14:08
    #36598420
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
vcoshakkrvsa,

В моём коде никакого таймера нет, страница перегружается сама собой, при этом всякий раз выполняется функция "LoadSettings", в которой %page-параметры обнулены.
Посмотрите описание параметра страницы AUTOLOGOUT .
...
Рейтинг: 0 / 0
26.04.2010, 14:36
    #36598490
vcoshak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передть параметры при обновлении ZEN-страницы
servitvcoshakkrvsa,

В моём коде никакого таймера нет, страница перегружается сама собой, при этом всякий раз выполняется функция "LoadSettings", в которой %page-параметры обнулены.
Посмотрите описание параметра страницы AUTOLOGOUT .

Да, это оно самое:

/// If true, then attempt to refresh this page when its session timeout period has expired.
/// This will cause a login page to display if the current session has ended
/// and security is set to require login.
Parameter AUTOLOGOUT As BOOLEAN = 1;

Стоит по умолчанию "1", как прставил в "0", так и перестало перезагружаться.

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


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