2013-03-04 4 views
1

У меня есть следующий кодОтключить a4j: состояние только час: inputText компонент, но не другие компоненты

<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> 

Проблема: Даже если я не указал status="commonstatus" в <h:inputText> я все еще получаю изображение загрузки для OnKeyUp мероприятие. Что мне здесь не хватает?

Любая помощь будет отличной.

ответ

1

По умолчанию применяется <a4j:status> для всех компонентов на странице, которые запускают запрос ajax. Тем не менее, вы можете ограничить компоненты, которые будут пойманы с помощью атрибута for, как указано в tag component documentation:

для: идентификатор компонента AjaxContainer, состояние которого указывается (в формате javax.faces.UIComopnent. findComponent()).

+0

спасибо :) работает как шарм – akshob

+0

Добро пожаловать :) –

0

Вы можете обернуть h:inputText помощью a4j:region

или

Set status атрибута a4j:support к не существующему идентификатору состояния (например, status="none")

+0

Это взлом, а не решение. –

0

Это, вероятно, немного устарели, но может быть полезным, если кто-либо еще работает с Richfaces 3.3 ... Я определил 2 компонента статуса в общем шаблоне макета. Одним из них является основной статус, который используется по применению всякий раз, когда Аякса срабатывает событие, и это относится ко всей странице, и один является «ни» статус, который ничего не делает (и он должен быть обернут в регионе):

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

Всякий раз, когда мне не нужен основной статус, я указываю статус «нет», как предложил Андрей, но компонент статуса фактически существует, поэтому предупреждение о несуществующем компоненте исключается.

Не забудьте обернуть его в область a4j: или он не будет работать правильно - если у вас есть 2 компонента статуса в одном регионе, я думаю, что всегда будет использоваться второй, независимо от того, что вы поместите в свой тег статуса свой компонент, который запускает запрос ...