Задача у меня стоит следующим образом: необходимо присвоить переменной сессии значение переменной id. Для этого я делаю следующее:
1.
2.
3.
4.
5.
ClientMethod RowSelected(table) [ Language = javascript ]
{
var id = table.getValue();
zenPage.ShowObject(id);
var ok = zenPage.SetID(id);
}
Сама функция на Каше:
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])
Полный листинг кода страницы приведен ниже:
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();
}
}
Помогите, пожалуйста, уже всё перепробовал. У меня теория в том, что я не правильно вызываю функцию.