我试图保留 Zen Page 属性的值,这是一个复杂类型的数组,但我没有成功。当我在这个数组中设置一个对象并且我这样做时的方法完成时,数组被清除。例如,当我将属性作为 %String 的数组时,同样的情况不会发生。
这是我的 Zen Page 的代码:
Class so1.Page Extends %ZEN.Component.page
{
Property ValueArray As array Of so1.ComplexType;
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<button caption="Fill Array" onclick="zenPage.FillArray()"/>
<button caption="Show Array" onclick="zenPage.ShowArray()"/>
</page>
}
Method FillArray() As %Status [ ZenMethod ]
{
Set tComplexType = ##class(so1.ComplexType).%New()
Set tComplexType.Name = $Case($Random(2)+1,1:"Value1",2:"Value2",3:"Value3")
Set tComplexType.Value = ($Random(2)+1)*10
Set tKey = ..ValueArray.Count()+1
Set tSC = ..ValueArray.SetAt(tComplexType,tKey)
&js<alert(#(..ValueArray.Count())#);>
Quit tSC
}
Method ShowArray() As %Status [ ZenMethod ]
{
&js<alert(#(..ValueArray.Count())#);>
Quit $System.Status.OK()
}
}
这是我的复杂类型类的代码:
Class so1.ComplexType Extends %RegisteredObject
{
Property Name As %String;
Property Value As %String;
}
测试 Zen 页面,当我单击“填充数组”按钮时,我在 ValueArray 属性的数组中设置了一个对象。然后我显示数组元素编号。当我单击“显示数组”按钮时,我注意到 ValueArray 属性的数组不再具有该对象。
有没有办法将对象保留在 ValueArray 属性的数组中?或者保留值的独特方法是将它们保存在持久对象中?
提前致谢。