【问题标题】:Disable a4j:status for only h:inputText component but not other components仅对 h:inputText 组件禁用 a4j:status,对其他组件禁用
【发布时间】:2013-02-18 10:18:14
【问题描述】:

我有以下代码

<a4j:status id="commonstatus" onstart="#{rich:component('loading')}.show();" onstop="#{rich:component('loading')}.hide();" />
<rich:dataTable id="dTable" reRender="ds">
<rich:column id="name" filterMethod="#{myBean.filterName}">
...
<h:inputText> <a4j:support event="onkeyup" reRender="dTable, ds" ignoreDupResponses="true" requestDelay="700" oncomplete="setCaretToEnd(event);" /> </h:inputText>
...
<rich:datascroller id="ds" reRender="dTable">
...
<a4j:support event="onchange" reRender="dtable, ds" status="commonstatus" />
...
</rich:dataTable>

<rich:modalPanel id="loading" moveable="false" autosized="true">
<h:panelGrid columns="2">
        <h:graphicImage value="images/progress.gif"/>
        <h:outputText value="Loading..."/>
 </h:panelGrid>
 </rich:modalPanel>

问题:即使我没有在&lt;h:inputText&gt; 中指定status="commonstatus",我仍然会得到onkeyup 事件的加载图像。 我在这里错过了什么?

任何帮助都会很棒。

【问题讨论】:

    标签: jsf richfaces richdatatable


    【解决方案1】:

    &lt;a4j:status&gt; 默认适用于页面中所有触发 ajax 请求的组件。但是,您可以使用for 属性来限制将被捕获的组件,如tag component documentation 中所述:

    for:指示状态的 AjaxContainer 组件的 ID(以 javax.faces.UIComopnent.findComponent() 调用的格式)。

    【讨论】:

      【解决方案2】:

      您可以将h:inputText 包装成a4j:region

      a4j:supportstatus 属性设置为不存在的状态ID(例如status="none"

      【讨论】:

      • 这是一个技巧,而不是解决方案。
      【解决方案3】:

      它可能有点过时了,但如果有人仍然使用 Richfaces 3.3,它可能会很有用...我在通用 facelet 模板中定义了 2 个状态组件。一种是当 ajax 事件触发并应用于整个页面时跨应用程序使用的主要状态,一种是不执行任何操作的“无”状态(并且必须包装在区域中):

      <a4j:status id="main" onstart="(something)" onstop="(something else)" />
      <a4j:region>
         <a4j:status id="none" onstart="" onstop="" />
      </a4j:region>
      

      每当我不想出现主要状态时,我都会按照 Andrey 的建议指定“无”状态,但状态组件实际上存在,因此避免了有关不存在组件的警告。

      不要忘记将它包装在 a4j:region 中,否则它将无法正常工作 - 如果您在同一个区域中有 2 个状态组件,我认为总是会使用第二个,无论您放什么在触发请求的组件的状态标记中...

      【讨论】:

        猜你喜欢
        • 2022-06-16
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-26
        • 2016-06-22
        • 2019-11-03
        相关资源
        最近更新 更多