powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Не передается аргумент из javascript в ClientMethod на языке Каше
4 сообщений из 4, страница 1 из 1
Не передается аргумент из javascript в ClientMethod на языке Каше
    #37484432
mrlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача у меня стоит следующим образом: необходимо присвоить переменной сессии значение переменной id. Для этого я делаю следующее:

Код: plaintext
1.
2.
3.
4.
5.
ClientMethod RowSelected(table) [ Language = javascript ]
{
	var id = table.getValue();
	zenPage.ShowObject(id);
	var ok = zenPage.SetID(id);
}

Сама функция на Каше:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ClientMethod SetID(idd) [ Language = cache ]
{
	;
	s ok= 0 
	s %session.Data("idd")=idd
	s ok= 1 
	q ok
}

Сам код описан классе - зен-странице.

При исполнении страница выдает ошибку:
ZEN EXCEPTION
http://localhost:57772/csp/user/WebDevelop.DisplayOrders.cls

A JavaScript exception was caught in function zenInvokeCallbackMethod
TypeError: 'zenPage.SetID' is not a function
====================================
Error invoking callback code.
Code: "zenPage.RowSelected(zenThis);"
Source: <tablePane id="table">

====================================
Stack trace:
js:zenExceptionHandler(TypeError: 'zenPage.SetID' is n...,[object Object],Error invoking callback code.
C...)
js:zenInvokeCallbackMethod(zenPage.RowSelected(zenThis);,[object Object],onselectrow,which,click)
js:function(2,?,click)
js:function(2)
js:function anonymous([object MouseEvent])


Полный листинг кода страницы приведен ниже:
Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
/// Список заказов клиентов с возможностью редактирования параметров
Class WebDevelop.DisplayOrders Extends WebDevelop.Template
{

/// Class name of application this page belongs to.
Parameter APPLICATION = "WebDevelop.MyApplication";

/// Displayed name of this page.
Parameter PAGENAME = "Информация о заказах";

/// Domain used for localization.
Parameter DOMAIN;

/// This Style block contains page-specific CSS style definitions.
XData Style
{
}

/// This XML block defines the contents of this page.
XData mainPane [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<pane xmlns="http://www.intersystems.com/zen" title=""> 

 	<vgroup width="100%">
<tablePane id="table"
	      tableName="WebDevelop.OrderBlank"
	      useSnapshot="true"
	      valueColumn="ID"
	      onselectrow="zenPage.RowSelected(zenThis);"
	      >
	  <column colName="ID" hidden="true"/>
 	  <column header="E-mail" colName="Email" filterType="text"/> 
  	  <column header="Название организации" colName="OrgName" filterType="text"/> 
      <column header="ФИО контактного лица" colName="CustomerName" filterType="text"/>
      <column header="Телефон" colName="Phone" filterType="text"/>
      <column header="Город" colName="City" filterType="text"/>
      <column header="Адрес" colName="Address" filterType="text"/>
      <column header="Поиск новых клиентов" colName="ClientSearch" filterType="text"/>
      <column header="Реклама товара или услуг" colName="Advertisment" filterType="text"/>
      <column header="Информационная поддержка клиентов" colName="InformationSupport" filterType="text"/>
      <column header="Благоприятный имидж компании" colName="FavourableImage" filterType="text"/>
      <column header="Другие цели" colName="OtherGoals" filterType="text"/>
      <column header="На какую аудиторию нацелен сайт" colName="Audience" filterType="text"/>
      <column header="Имя домена" colName="DomainName" filterType="text"/> 
      <column header="Хостинг" colName="HostingCompanyName" filterType="text"/>
      <column header="Требуется регистрация домена" colName="DomainRegister" filterType="text" />
      <column header="Требуется размещение домена на хостинговой площадке" colName="DomainOnHosting" filterType="text"/>
      <column header="Тип сайта" colName="WorkType" filterType="text"/>
      <column header="Имиджевый" colName="ImaginarySite" filterType="text"/>
      <column header="Информационный" colName="InformationSite" filterType="text"/>
      <column header="Другой тип дизайна" colName="AnotherSiteType" filterType="text"/>
      <column header="Слова, характеризующие стилистику сайта" colName="Tags" filterType="text"/>
      <column header="Сайты, дизайн которых нравится заказчику" colName="FavoriteClientSites" filterType="text"/>
      <column header="Сайты основных конкурентов" colName="SitesOfPrimaryClientConcurents" filterType="text"/> 
      <column header="Использование флэш-элементов" colName="FlashElements" filterType="text"/>
      <column header="Пожелания к дизайну флэш" colName="FlashWishes" filterType="text"/>
      <column header="Фирменный стиль" colName="FirmStyle" filterType="text"/>
      <column header="Логотип" colName="Logo" filterType="text"/>
      <column header="Фотографии" colName="Photos" filterType="text"/>
      <column header="Тексты для сайта" colName="TextForSite" filterType="text"/>
      <column header="Видео-материалы" colName="VideoMaterials" filterType="text"/>
      <column header="Язык" colName="Lang" filterType="text"/>
      <column header="Дата заказа" colName="OrderDate"/>
 	</tablePane> 
 	<pane paneName="editPane" width="50%" align="left"/>
 	</vgroup>
 	 </pane>
}

XData editPane [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<pane xmlns="http://www.intersystems.com/zen" title=""> 
<spacer height="50"/>
 <dataController id="controller" modelClass="WebDevelop.OrderBlank" />
 <vgroup align="left" id="formGroup" enclosingStyle="border: 1px solid black;" width="50%">
  <form id="MyForm" align="center" labelPosition="top" controllerId="controller">  
<hgroup> 
<text label="E-mail:" id="Email" name="Email" size="35" required="true" dataBinding="Email"/> 
<spacer width="20"/> 
<text label="Название организации:" id="OrgName" name="OrgName" size="35" dataBinding="OrgName"/>
<spacer width="20"/>
<text label="ФИО контактного лица:" id="CustomerName" name="CustomerName" size="35" dataBinding="CustomerName"/>
</hgroup> 
<spacer height="10"/>

<hgroup labelPosition="left">
<text label="Телефон:" id="Phone" name="Phone" size="35" dataBinding="Phone"/> 
<spacer width="20"/> 
<text label="Город:" id="City" name="City" size="35" dataBinding="City"/>
<spacer width="20"/>
<text label="Адрес:" id="Address" name="Address" size="35" dataBinding="Address"/>     
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<checkbox id="ClientSearch" 
         name="ClientSearch" 
         label="Поиск новых клиентов:" 
         value="1,0" 
          dataBinding="ClientSearch"/>
<spacer width="20"/>
<checkbox id="Advertisment" 
         name="Advertisment" 
         label="Реклама товара или услуг:" 
         value="1,0" 
          dataBinding="Advertisment"/>
<spacer width="20"/>   
<checkbox id="InformationSupport" 
         name="InformationSupport" 
         label="Информационная поддержка клиентов:" 
         value="1,0" 
          dataBinding="InformationSupport"/>
<spacer width="20"/>
<checkbox id="FavourableImage" 
         name="FavourableImage" 
         label="Благоприятный имидж компании:" 
         value="1,0" 
          dataBinding="FavourableImage"/>       
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<textarea label="Другие цели:" id="OtherGoals" name="OtherGoals" cols="40" rows="5" dataBinding="OtherGoals"/> 
<spacer width="20"/> 
<textarea label="На какую аудиторию нацелен сайт:" id="Audience" name="Audience" cols="40" rows="5" dataBinding="Audience"/>
<spacer width="20"/>
</hgroup>
<spacer height="10"/>
<hgroup labelPosition="left">
<text label="Имя домена:" id="DomainName" name="DomainName" size="35" dataBinding="DomainName"/> 
<spacer width="20"/> 
<text label="Хостинг:" id="HostingCompanyName" name="HostingCompanyName" size="35" dataBinding="HostingCompanyName"/>
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<checkbox id="DomainRegister" 
         name="DomainRegister" 
         label="Требуется регистрация домена:" 
         value="1,0" 
          dataBinding="DomainRegister"/>
<spacer width="20"/>
<checkbox id="DomainOnHosting" 
         name="DomainOnHosting" 
         label="Требуется размещение домена на хостинговой площадке:" 
         value="1,0" 
          dataBinding="DomainOnHosting"/>
<spacer width="20"/>   
<combobox label="Тип сайта:" 
         id="WorkType" 
         name="WorkType" 
         displayList="Интернет-магазин,Портал,Сайт-визитка,Блог,Социальная сеть,Сайт корпорации,Другое" 
         valueList="Интернет-магазин,Портал,Сайт-визитка,Блог,Социальная сеть,Сайт корпорации,Другое" 
          dataBinding="WorkType"/>
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<checkbox id="ImaginarySite" 
         name="ImaginarySite" 
         label="Имиджевый:" 
         value="1,0" 
          dataBinding="ImaginarySite"/>
<spacer width="20"/>
<checkbox id="InformationSite" 
         name="InformationSite" 
         label="Информационный:" 
         value="1,0" 
          dataBinding="InformationSite"/>
<spacer width="20"/>   
<textarea label="Другой тип дизайна:" id="AnotherSiteType" name="AnotherSiteType" cols="70" rows="5" dataBinding="AnotherSiteType"/> 
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<textarea label="Слова, характеризующие стилистику сайта:" id="Tags" name="Tags" cols="40" rows="5" dataBinding="Tags"/> 
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<textarea label="Сайты, дизайн которых нравится заказчику:" id="FavoriteClientSites" name="FavoriteClientSites" cols="40" rows="5" dataBinding="FavoriteClientSites"/>
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<textarea label="Сайты основных конкурентов:" id="SitesOfPrimaryClientConcurents" name="SitesOfPrimaryClientConcurents" cols="40" rows="5" dataBinding="SitesOfPrimaryClientConcurents"/>
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<checkbox id="FlashElements" 
         name="FlashElements" 
         label="Использование флэш-элементов:" 
         value="1,0" 
          dataBinding="FlashElements"/> 
<spacer width="20"/>  
<textarea label="Пожелания к дизайну флэш:" id="FlashWishes" name="FlashWishes" cols="40" rows="5" dataBinding="FlashWishes"/>
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<combobox label="Фирменный стиль:" 
         id="FirmStyle" 
         name="FirmStyle" 
         displayList="Есть, Нет. Необходимо разработать, Нет и не надо" 
         valueList="Есть, Нет. Необходимо разработать, Нет и не надо" 
          dataBinding="FirmStyle"/>
<spacer width="20"/>
<combobox label="Логотип:" 
         id="Logo" 
         name="Logo" 
         displayList="Есть,Нет. Необходимо разработать,Нет и не надо" 
         valueList="Есть,Нет. Необходимо разработать,Нет и не надо" 
          dataBinding="Logo"/>
<spacer width="20"/>   
<combobox label="Фотографии:" 
         id="Photos" 
         name="Photos" 
         displayList="Есть,Нет. Необходимо сделать,Нет и не надо" 
         valueList="Есть,Нет. Необходимо сделать,Нет и не надо" 
          dataBinding="Photos"/>
</hgroup>
<spacer height="10"/>

<hgroup labelPosition="left">
<combobox label="Тексты для сайта:" 
         id="TextForSite" 
         name="TextForSite" 
         displayList="Есть 100%,Есть 50%,Есть черновики,Нет. Необходимо наполнить,Нет. Мы сами потом наполним" 
         valueList="Есть 100%,Есть 50%,Есть черновики,Нет. Необходимо наполнить,Нет. Мы сами потом наполним" 
          dataBinding="TextForSite"/>
<spacer width="20"/>
<checkbox id="VideoMaterials" 
         name="VideoMaterials" 
         label="Видео-материалы:" 
         value="1,0" 
          dataBinding="VideoMaterials"/>
<spacer width="20"/>   
<combobox label="Язык:" 
         id="Lang" 
         name="Lang" 
         displayList="Русский,Английский,Русский и английский" 
         valueList="Русский,Английский,Русский и английский" 
          dataBinding="Lang"/>
<spacer width="20"/>   
<dateText label="Дата заказа:" id="OrderDate" name="OrderDate" dataBinding="OrderDate"/>
</hgroup>
<spacer height="10"/>
      
<hgroup id="btnGroup" cellAlign="left"> 
  <button id="btnNew" caption="Очистить" onclick="zenPage.NewItem();"/> 
  <spacer width="10"/> 
  <button id="btnSave" caption="Сохранить" onclick="zenPage.SaveItem();"/> 
  <spacer width="10"/> 
  <button id="btnDelete" caption="Удалить" onclick="zenPage.DeleteItem();"/> 
  <spacer width="10"/> 
  <button id="btnPrint" caption="Печать заявки" onclick="zenPage.Print();"/>
  <spacer width="10"/> 
</hgroup>
</form>
</vgroup>
<spacer height="50"/>
   </pane>
}

ClientMethod Print() [ Language = javascript ]
{
	
	location.href="Print.csp";
}

ClientMethod SetID(idd) [ Language = cache ]
{
	;
	s ok= 0 
	s %session.Data("idd")=idd
	s ok= 1 
	q ok
}

ClientMethod RowSelected(table) [ Language = javascript ]
{
	var id = table.getValue();
	zenPage.ShowObject(id);
	var ok = zenPage.SetID(id);
}

ClientMethod ShowObject(id) [ Language = javascript ]
{
	var controller = zenPage.getComponentById('controller');
	controller.setModelId(id);
}

ClientMethod NewItem() [ Language = javascript ]
{
	var controller = zenPage.getComponentById('controller');
	controller.createNewObject();
}

ClientMethod DeleteItem() [ Language = javascript ]
{
	var controller = zenPage.getComponentById('controller');
	var id = controller.getModelId();

	if ('' == id) {
		alert('Для начала выберите запись');
	}
	else if (confirm('Вы действительно хотите удалить эту запись?')) {
		controller.deleteId(id);
		var table = zenPage.getComponentById('table');
		table.executeQuery();
	}
}

ClientMethod SaveItem() [ Language = javascript ]
{
	var form = zenPage.getComponentById('MyForm');
	form.save();

	var table = zenPage.getComponentById('table');
	table.executeQuery();
}

}


Помогите, пожалуйста, уже всё перепробовал. У меня теория в том, что я не правильно вызываю функцию.
...
Рейтинг: 0 / 0
Не передается аргумент из javascript в ClientMethod на языке Каше
    #37484478
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrlan,

ClientMethod SetID(idd) [ Language = cache ]
нужно заменить на
ClientMethod SetID(idd) [ ZenMethod ]
...
Рейтинг: 0 / 0
Не передается аргумент из javascript в ClientMethod на языке Каше
    #37484579
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrlan ,

Zen Methods on Client and Server

Для Вашего случая подойдёт метод класса, например:
ClassMethod SetID(idd As %String) As %Status [ ZenMethod ]
{
  s %session.Data("idd")=idd
  q $$$OK
}

Вариант ClientMethod ...[ZenMethod] противоречив, поэтому работать тоже не будет.

PS: если сигнатура метода не имеет выходной параметр, то и возвращать ничего не нужно.
...
Рейтинг: 0 / 0
Не передается аргумент из javascript в ClientMethod на языке Каше
    #37485293
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitВариант ClientMethod ...[ZenMethod] противоречив...
Конечно же это опечатка. Правильно
ClassMethod SetID(idd) As %String [ ZenMethod ]
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Не передается аргумент из javascript в ClientMethod на языке Каше
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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