2014-01-23 6 views
1

мой xhtml страница имеет следующий формат:Как я могу предотвратить р: CommandButton обновить р: TabView

<h:form> 
     <p:dialog widgetVar="presentDiag" modal="true" closable="true" header="Liste" maximizable="false" dynamic="true"> 

      <p:commandButton value="Submit" id="submit" actionListener="bean.add()"/> 
     </p:dialog> 
    </h:form> 
    <h:form> 
     <p:tabView> 
      <p:tab title="...."> 
      </p:tab> 
      <p:tab title="...."> 
      </p:tab> 
      <p:tab title="...."> 
      </p:tab> 
      </p:tabView> 
     </h:form> 

, когда я нажимаю на кнопку отправки выбранная вкладка изменен на первой вкладке

+0

Но как я вижу, кнопка отправки ничего не обновляет? может, забыл упомянуть об этом? –

ответ

0

Если вы хотел обновить форму, а затем что-то исключить из него, проще всего было бы использовать PrimeFaces selectors так:

<h:form id="form"> 
    <p:dialog widgetVar="presentDiag" modal="true" closable="true" header="Liste" maximizable="false" dynamic="true"> 
     <p:commandButton value="Submit" id="submit" actionListener="bean.add()" update="@(form :not(.tab-view))"/> 
    </p:dialog> 
    <h:panelGroup styleClass="tab-view" > 
     <p:tabView> 
      <p:tab title="...."> 
      </p:tab> 
      <p:tab title="...."> 
      </p:tab> 
      <p:tab title="...."> 
      </p:tab> 
     </p:tabView> 
    </h:panelGroup> 
</h:form> 

вы всегда можете снова открыть нужную вкладку с помощью widgetVar атрибут.

<p:tabView widgetVar="myTab"> .... </p:tabView> 
. 
. 
. 
<p:commandButton value="Submit" id="submit" actionListener="bean.add()" update="someId" oncomplete="myTab.select(2);"/> 

но лучшее, что нужно сделать, было бы не закрывать его в первую очередь.

+0

i wan обновить dataTable за последние

+0

, тогда вы должны сделать свои намерения более ясными. В этом случае просто укажите свой идентификатор таблицы и обновите только его. – Kuba

+0

update = "someId, @this" также решает проблему –