Perşembe, Şubat 12, 2009

Ajax a4j:outputPanel

a4j:outputPanel kendi içindeki componentlerin ajax responsunda render edilmesini sağlar. ayrıca outputpanel kendi içindeki componentlerin ajax işlemi sonunda rerender etme işleminde de kullanılır. ajaxRendered="true" kullandığınızda ajaxın rerender metoduna herhangi bir şey yazmanıza bile gerek kalmaz. şöyle ki;
<a4j:outputPanel 
ajaxRendered="true">
<h:panelGrid id="toppanelgrid" columns="2" width="750"
columnClasses="colStyle1,colStyle2">
<h:column>
<h:outputText value="Select One:"></h:outputText>
</h:column>
<h:column>
<h:selectOneMenu value="#{bean.selecteditem}"
required="true">
<f:selectItem itemLabel="Please Select" itemValue="" />
<f:selectItem itemLabel="item1" itemValue="item1" />
<f:selectItem itemLabel="item2" itemValue="item2" />
<a4j:support event="onchange" ajaxSingle="true"
actionListener="#{bean.itemrenderer}"></a4j:support>
</h:selectOneMenu>
</h:column>

<h:column rendered="#{bean.item1renderer}">
<h:outputText value="item1"></h:outputText>
</h:column>
<h:column rendered="#{bean.item1renderer}">
<h:inputText value="#{bean.item1text}"></h:inputText>
</h:column>

<h:column rendered="#{bean.item2renderer}">
<h:outputText value="item2"></h:outputText>
</h:column>
<h:column rendered="#{bean.item2renderer}">
<h:inputText value="#{bean.item2text}"></h:inputText>
</h:column>
</h:panelGrid>
</a4j:outputPanel>

Fakat önemli bir noktayı gözardı etmemek lazım. formunuzda ajaxRendered="true" olan birden fazla outputpanel iniz varsa bunların çalışması birbirini etkileyebilir. bu durumlarda rerender metodunu kullanmak gerekecektir.

1 yorum:

  1. faydalı bir paylaşım olmuş.

    teşekkürler

    YanıtlaSil