powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как передать массив JS в ZEN-метод?
4 сообщений из 29, страница 2 из 2
Как передать массив JS в ZEN-метод?
    #36457052
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotПервый вариант упорно не желает отрабатывать

Еще-бы ;) Это-ж http (выстрелил - забыл). Соответственно, %page - это НЕ СТРАНИЦА У КЛИЕНТА. Это некое представление страницы (слепок на момент вызова серверного метода), переданное НА СЕРВЕР.

И
Код: plaintext
1.
2.
3.
4.
	&js<
zenPage.Test(); // Выполняется на компьютере клиента в его версии страницы
alert('#(%page.rowArrayInfo)#'); // Выполняется на сервере с неким слепком страницы,
//созданным на момент вызова метода
>

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

Но вот вопрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Property rowArrayInfo As %ZEN.Datatype.string; 

XData editPane [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<pane xmlns="http://www.intersystems.com/zen" id="editPane" >
<button caption=" test " onclick="zenPage.Test();" />
<text size="100" id="testText" />
</pane>
}


Method Test1() [ Language = javascript ]
{
	zenPage.getComponentById('testText').setProperty('value',zenPage.getComponentById('testText').getProperty('value')+' c1 '+zenPage.rowArrayInfo)
	//zenPage.rowArrayInfo=zenPage.rowArrayInfo+'c';
	//zenPage.rowArrayInfo="111"; // НЕ РАБОТАЕТ
	zenPage.rowArrayInfo= 111 ; // РАБОТАЕТ
	zenPage.getComponentById('testText').setProperty('value',zenPage.getComponentById('testText').getProperty('value')+' c2 '+zenPage.rowArrayInfo)
	return  1 ;
}

Method Test() As %Status [ ZenMethod ]
{
	&js<
		zenPage.getComponentById('testText').setProperty('value','')
		zenPage.getComponentById('testText').setProperty('value',zenPage.getComponentById('testText').getProperty('value')+' s1 '+zenPage.rowArrayInfo)
		var tmp = zenPage.Test1();
		zenPage.getComponentById('testText').setProperty('value',zenPage.getComponentById('testText').getProperty('value')+' s2 '+zenPage.rowArrayInfo)
	    >
	//s %page.rowArrayInfo = %page.rowArrayInfo_"s"
	//s %page.rowArrayInfo = "222" // НЕ РАБОТАЕТ
	s %page.rowArrayInfo =  222  // РАБОТАЕТ
	q $$$OK
}

Почему при использовании числа (111 и 222)
результат, начиная со второго шага стабильный:
s1 c1 c2 111 s2 111
s1 222 c1 222 c2 111 s2 111
s1 222 c1 222 c2 111 s2 111
s1 222 c1 222 c2 111 s2 111
...
а при использовании строки ("111" и "222")
вот такая ерунда:
s1 c1 c2 111 s2 111
s1 222 c1 222 c2 111 s2 111
s1 111 c1 111 c2 111 s2 111
s1 222 c1 222 c2 111 s2 111
s1 111 c1 111 c2 111 s2 111
... ??? О_о
...
Рейтинг: 0 / 0
Как передать массив JS в ZEN-метод?
    #36458024
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуйте так:
Код: plaintext
Property rowArrayInfo As %ZEN.Datatype.list(XMLPROJECTION = "none", ZENSETTING =  0 );
вместо
Код: plaintext
Property rowArrayInfo As %ZEN.Datatype.string;
...
Рейтинг: 0 / 0
Как передать массив JS в ZEN-метод?
    #36458679
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007попробуйте так:

С того и начал... взял Ваш код повыше...
А что, кстати, эти модификаторы дают? XMLPROJECTION не должно роли играть... а вот ZENSETTING ведет себя несколько не по документации - при значении 0 все равно позволяет заполнять свойство через %page, а вроде не должно...
...
Рейтинг: 0 / 0
Как передать массив JS в ZEN-метод?
    #36460457
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,
это доку читать нужно, я не в курсе
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как передать массив JS в ZEN-метод?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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