当前位置: 首页 > 知识库问答 >
问题:

在ajax更新中更改组件类型

施彬彬
2023-03-14

我的表单上有一个组件(id="theDocument"),我想在某些情况下以不同的方式呈现。

如果是我的豆子。文档'存在,我希望它呈现为p:commandLink,但如果它不存在,我希望它呈现为纯文本,例如h:outputText。

此条件将在文件上传后更改(上传后,myBean.theDocument将存在,因此我希望它呈现为p:命令链接)。

所以在我的p: fileUpload上,我有这样的东西:

<p:fileUpload fileUploadListener="#{myBean.handleFileUpload}" update="theDocument">  

我一直在使用rendered=“…”,更新可以很好地刷新现有组件的值。但是,在ajax更新之后,我该如何更改组件的类型(或者我需要刷新整个页面,并决定以更通用的方式呈现为文本或链接?

谢谢

共有1个答案

邓才
2023-03-14

只需在公共父级中包含两个条件呈现的组件并更新公共父级。

<h:panelGroup id="theDocument">
    <p:commandLink ... rendered="#{not empty myBean.theDocument}" />
    <h:outputText ... rendered="#{empty myBean.theDocument}" />
</h:panelGroup>
 类似资料:
  • 控制器类别:包装样品;

  • 我对JS的反应有点陌生。我有两个问题。我来了 现在我要做的是,当应用程序组件挂载时,我生成一个对后端服务器的ajax调用,当它返回时,它更新道具,并设置状态,这样子组件也会重新呈现,但子组件不会重新呈现。谁能告诉我出了什么问题。 问题2 现在让我们假设我将进入组件二路由,它将呈现组件二,我在应用程序组件中生成一个ajax调用,根据ajax调用返回的数据,我在应用程序组件中设置了一些道具,我还希望组

  • 这个问题在这里已经得到了回答,但事情总是在变化。 基本上,父组件获取一些数据,子组件需要这些数据。 这是子组件。

  • 问题内容: 我在代码中使用了PrimeFaces 标记。我们如何在更新父组件的ajax调用中排除子组件的更新? 问题答案: 如果您至少使用PrimeFaces 3.3,则可以为此使用PrimeFaces选择器。这允许您在PrimeFaces ajax组件中使用jQuery CSS选择器语法 和属性。 例如: 此示例将更新整个表单,除了客户端具有的输入。 如果要更新某个组件的所有子组件(除了一个),

  • 我在代码中使用了PrimeFaces标记。如何在更新父组件的ajax调用中排除子组件的更新?

  • 我创建了一个文本文件,并将其重命名为testTreeGen.py。 问题是PyCharm没有将其检测为python源,因此我无法执行它。 我怎样才能教 PyCharm 这是 python 脚本?我尝试删除该文件并重新创建它,并创建了另一个 python 文件并重命名它;所有最终都是文本文件而不是 Python 脚本的文件。 版本是3.0.2。 重构不起作用。 即使在我将其重命名为python脚本之