gpt4 book ai didi

javascript - Primefaces 通过 Javascript 更改元素属性

转载 作者:行者123 更新时间:2023-11-30 16:35:52 25 4
gpt4 key购买 nike

我正在开发使用 Primefaces 3.5 的项目(是的,这是一个很旧的版本)。我想要实现的是 Javascript 中的一个函数,它将更改 Primefaces 元素的属性。可以吗?

我有一个面板定义为:

<p:panel id="mypanel" widgetVar="mypanelWidget" header="A title here" toggleable="true" toggleOrientation="vertical" collapsed="true">

我的想法是使用 Javascript 将 collapsed="true" 更改为 collapsed="false"

由于更新面板的 ajax 调用,这种需求激增,并且在更新时,它显示为折叠状态。在回调中执行 mypanelWidget.expand() 并不是一个好主意,因为我的页面变得非常生动。

最佳答案

两种选择:

  1. 只需在 collapsed 属性中使用 EL 来检查某些模型状态,而不是指定硬编码的 true

    <p:panel ... collapsed="#{not bean.ajaxMethodCalled}">

    由此确保如果调用了感兴趣的 ajax 方法,isAjaxMethodCalled() 返回 true。它不一定需要是 bool 属性,它可以是任何东西,包括检查 HTTP 请求参数映射,只要它计算出所需的 bool 结果即可。

  2. 在 ajax 调用期间不要更新面板本身。相反,更新其内容。

    <p:panel ...>
    <h:panelGroup layout="block" id="panelContents">
    ...
    <p:ajax update="panelContents" />
    ...
    </h:panelGroup>
    </p:panel>

    这样,面板的 HTML 表示在 HTML DOM 树中的状态保持不变。

关于javascript - Primefaces 通过 Javascript 更改元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32711231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com