2012-05-30 2 views
0

У меня проблема в том, что при попытке обновить компонент, который не совпадает с тем же xhtml.Не удается найти компонент с идентификатором в представлении

Кто-нибудь знает, как это сделать?

ТНХ PD: им с помощью primefaces 3.2

Извините за мой английский

Я думаю, что я dnot объяснить очень хорошо.

У меня есть Xhtml отца со структурой ТИС:

<h:panelGrid id="tabla"> 

    <h:form id="formTripu" prependId="false"> 
     <h:panelGrid id="fichaTripulante"> 
      <ui:include src="path1" /> 
      <p:spacer height="5px" /> 
      <p:tabView dynamic="false" cache="true"> 
       <p:tab title="#{bundleTrip.datosAdministrativos}"> 
        <ui:include 
         src="path2" /> 
       </p:tab> 
       <p:tab title="Datos Operativos "> 
        <ui:include 
         src="path3" /> 
       </p:tab> 

Я хотел бы сделать это когда, например, в path1 я использую ах: selectBooleanCheckbox как:

    <h:selectBooleanCheckbox inmediate="true" id="checkExt" 
         value="#{bean.Obj.field}"> 
         <f:ajax render="estadoTripu" 
          actionListener="#{bean.method}" /> 
        </h:selectBooleanCheckbox> 

estadoTripu находятся в path2 (otherxthml, но в той же форме).

<p:panel> 
    <h:panelGrid id="datos" columns="5"> 
     <p:column> 

   <h:selectOneMenu id="estadoTripu" 
        value="#{bean.Obj.Field2}"> 
        <f:selectItems 
         value="#{bean.list}" var="item" 
         itemValue="#{item.id}" immediate="true" 
         itemLabel="#{item.desc}"> 
        </f:selectItems> 
       </h:selectOneMenu> 
      </h:panelGrid> 
     </p:column> 
    </h:panelGrid> 
</p:panel> 

Ведьма paht в визуализации о е: Аякса ????

ТНХ все

ответ

0

Я считаю, что компонент должен быть в той же форме СОВ вызова начать в форме компонент, его предпочтительный put id каждый panelgrid, панель и т. д., потому что вам нужно вызывать каждый компонент englobe comoponent, который вы хотите сделать.

0

, если они не находятся в одной и той же XHTML, вы включать один в другой? Если нет, просто измените страницу, и она отобразит правильный.

Но я не думаю, что правильно понял ваш вопрос.

Добавьте код пожалуйста

1

попробовать это: (Его трюк я узнал от BalusC :))

binding="#{components.mySelecOneMenu}" добавить к вашему h:selectOneMenu

<h:selectOneMenu binding="#{components.mySelecOneMenu}" ..... 

это как кнопка должна выглядеть так (более или менее)

<h:commandButton value="doSomeThing"> 
    <f:ajax render="#{components.mySelecOneMenu.clientId}"/> 
</<h:commandButton> 

добавить это к вашему faces-config.xml

<managed-bean> 
    <description>Holder of all component bindings.</description> 
    <managed-bean-name>components</managed-bean-name> 
    <managed-bean-class>java.util.HashMap</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
</managed-bean> 

Вот некоторые подробное объяснение того, что я просто рекомендую вам сделать

How do I break the tyranny of the clientID?

JSF component binding without bean property

Смежные вопросы