gpt4 book ai didi

ajax - jsf 2.0 f :ajax render ID not found

转载 作者:行者123 更新时间:2023-12-04 18:51:18 26 4
gpt4 key购买 nike

当单击弹出窗口(pp1)中的保存按钮时,项目列表会更新。
但是当按下项目列表中的更新按钮时,渲染 ID :form1:pp1 is not there 在渲染时出现错误。如果做 render="@all"它可以工作,但效果不佳。
(错误:<f:ajax> 包含未知 ID ':form1:pp1')

<h:form id="form1" prependid=false>
<h:panelGroup id="projects">
<ui:repeat var="action" value="#{dadadada}" varStatus="status">
<h:commandButton value="Save">
//gives id not found error
<f:ajax event="click" execute="@form" render=":form1:pp1" listener="#{fsfsfsfsfs}" />
</h:commandButton>
</ui:repeat>

</h:panelGroup> // project panel group

//popup
<h:panelGroup id="pp1">
<div id="popup2" class="popup_block">

//save button in the popup
<div class="popupBody_save2">
<h:commandButton image="resources/images/saveBtn.gif" value="Save">
<f:ajax event="click" execute="@form" render="projects" listener="#{dfsfssfs}" />
</h:commandButton>
</div>

</div>
</h:panelGroup>

</h:form>

最佳答案

:form1:pp1因为你有 prependId="false" 无法工作在表格上。 pp1将不起作用,因为它正在寻找与 <ui:repeat> 相同范围内的组件它本身就是一个 UINamingContainer成分。

在 webbrowser 中打开 JSF 页面,右键单击并查看源代码以获取生成的 HTML。找到由 <h:panelGroup id="pp1"> 生成的 HTML 元素.它应该看起来像这样

<span id="foo:bar:pp1">

您需要使用 正好此 ID 前缀为 :render属性。
<f:ajax render=":foo:bar:pp1">

如果有自动生成的 ID 部分,例如 j_id0 ,那么你需要给有问题的父组件一个固定的 ID。

关于ajax - jsf 2.0 f :ajax render ID not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5948498/

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