0

除了在面板的计算渲染属性中使用诸如范围变量之类的显而易见的东西之外,还有其他方法可以隐藏面板吗?

getCompoent("panel1").hide() 我尝试过但似乎没有用的东西,

4

4 回答 4

6

正确的方法是 getComponent("id").setRendered(false)。您可以通过 getComponent("id").setRendered(true) 再次显示它。

于 2012-11-16T22:35:38.270 回答
1

如果 extlib 可用,请检查 xe:dynmaicPanel 控件...非常有效,因为仅将显示的面板添加到组件树中...使用渲染属性方法,即使在 render=false 时面板仍会添加到组件树中。

还可以使用简单操作、客户端或服务器端 JavaScript 对动态内容显示进行编码。

... 通过 CSJS ...

    XSP.showContent("#{id:dynamicContent1}","keyToPanel1")

... 通过 SSJS ...

    var dc=getComponent("dynamicContent1");
    dc.show("keyToPanel1")

还是SS简单的动作...

    <xe:changeDynamicContentAction
         for="dynamicContent1" facetName="keyToPanel1">
    </xe:changeDynamicContentAction>
于 2012-11-17T13:26:21.937 回答
0

您可以使用以下代码实现此目的:

var c = getComponent("YOURPANELNAMEHERE")
c.toggle()

切换是您正在寻找的(而不是显示/隐藏)。

于 2012-11-16T22:15:43.247 回答
0

你试过扩展库中的 Switch 控件吗?不确定这是否对您要完成的工作有所帮助。

于 2012-11-16T23:41:51.153 回答