在 JSF 中更新和呈现标签
我正在尝试使用 primefaces 中的更新标签显示/不显示 primefaces 数据表。
当我重新加载(F5)页面时,该表将正确呈现,但随后我将丢失输入到表单中的所有数据。我一直在寻找 ajax 解决方案,但到目前为止我还没有找到。
我的代码:
<h:form id="adminForm">
<h:selectOneMenu id="adminTypeMenu" value="#{adminBean.orgType}">
<f:selectItem itemValue="" itemLabel="- Select One -"/>
<p:ajax actionListener="#{adminBean.updateOrgType}" update="adminForm" />
</h:selectOneMenu>
<p:dataTable id="adminMacTable" value="#{adminBean.currentArray}" var="currentOrg"
rendered="#{adminBean.Type eq 'bco'}" selection="#{adminBean.selectedMac}"
emptyMessage="No Records Found">
...
</p:dataTable>
</h:form>
当前实现显示数据表,但删除我拥有的任何表单输入。有没有办法在不清除表单值的情况下呈现数据表?
更新:刚刚尝试了相同的代码,但没有使用,但得到了相同的结果,仍在尝试其他方法!
I'm trying to display/not display a primefaces datatable using the update tag in primefaces.
The table will render correctly when I reload (F5) the page but then I will lose all the data I had imputed into the form. I was looking around for an ajax solution but I have been unable to find any so far.
My code:
<h:form id="adminForm">
<h:selectOneMenu id="adminTypeMenu" value="#{adminBean.orgType}">
<f:selectItem itemValue="" itemLabel="- Select One -"/>
<p:ajax actionListener="#{adminBean.updateOrgType}" update="adminForm" />
</h:selectOneMenu>
<p:dataTable id="adminMacTable" value="#{adminBean.currentArray}" var="currentOrg"
rendered="#{adminBean.Type eq 'bco'}" selection="#{adminBean.selectedMac}"
emptyMessage="No Records Found">
...
</p:dataTable>
</h:form>
The Currently implementation displays the dataTable but erases any form inputs I had. Is there a way to render the datatable without clearing out my form values?
Update: Just tried the same code without and used but got the same result, still trying other methods!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
如果这不起作用,请尝试将数据表放入单独的表单中并更新第二个表单。
Try this:
If that doesn't work, try putting the datatable inside a separate form and update this second form.
我猜测 AdminBean 可能在请求范围内,在这种情况下,您的 ajax 事件将更新它,但当您按 F5 时它会重新创建。如果是这样,那么 ViewScoped 将有所帮助:
I'm guessing that AdminBean might be in request scope in which case your ajax event will update it but then it gets recreated when you press F5. If so then ViewScoped will help: