2014-11-25 82 views
0

以下是我的代碼。此處CommandButton操作不起作用,並始終移動第一個 選項卡。CommandButton Onclick裏面的標籤總是帶我到第一個標籤Primefaces

<h:head> 
    <title>Alert Input</title> 
</h:head> 
<h:body> 
    <h1 style="margin: auto;text-align: center">Fraud Alert Admin Page</h1> 
    <p:separator style="height:5px;background-color:black;"/> 
    <p:tabView id="tabs"> 
     <p:tab id="alertInput" title="Enter Alert"> 
      <h:form> 
       <p:growl id="submitMessage" showDetail="true" sticky="true"/> 
       <p:panel id="alertPanel"> 
        <p:panelGrid columns="2" style="margin-bottom:10px"> 
         <p:outputLabel for="sevLevel" value="Sev:" /> 
         <p:selectOneMenu id="sevLevel" required="true" value="#{alertInputBean.alertSev}"> 
          <f:selectItem itemLabel="Informational" itemValue="1"/> 
          <f:selectItem itemLabel="Warning" itemValue="2"/> 
          <f:selectItem itemLabel="Urgent" itemValue="3"/> 
          <f:selectItem itemLabel="Severe" itemValue="4"/> 
         </p:selectOneMenu> 
         <p:outputLabel for="alertName" value="Alert Name:"/> 
         <p:inputText id="alertName" required="true" label="Alert Name" value="#{alertInputBean.alertName}"/> 
         <p:outputLabel for="alertDescription" value="Alert Description:"/> 
         <p:inputText id="alertDescription" required="true" label="Description" value="#{alertInputBean.alertDesc}"/> 
        </p:panelGrid> 
        <p:toolbar> 
         <f:facet name="left"> 
          <p:commandButton value="submit" actionListener="#{alertInputBean.submitAlert()}" 
              update="submitMessage" ajax="false"> 
          </p:commandButton> 
         </f:facet> 
         <f:facet name="right"> 
          <h:commandButton value="Reset"> 
           <p:ajax update="alertPanel" resetValues="true"/> 
          </h:commandButton> 
         </f:facet> 
        </p:toolbar> 
       </p:panel> 
      </h:form> 
     </p:tab> 
     <p:tab id="alertExisting" title="Current Alerts"> 
      <h:form id="form"> 
       <p:dataTable id="allAlerts" var="alerts" 
          value="#{alertInputBean.retrieveAllAlerts()}" 
          emptyMessage="No alerts found with the given criteria." 
          selection="#{alertInputBean.selectedAlerts}" 
          rowKey="#{alerts.alertName}" scrollable="true" scrollHeight="250"> 
        <f:facet name="header"> 
         Current Alerts 
        </f:facet> 
        <p:column selectionMode="multiple" style="width:16px;text-align:center"/> 
        <p:column headerText="Alert Severity"> 
         <h:outputText value="#{alerts.sev}"/> 
        </p:column> 
        <p:column headerText="Alert Name"> 
         <h:outputText value="#{alerts.alertName}"/> 
        </p:column> 
        <p:column headerText="Alert Description"> 
         <h:outputText value="#{alerts.descrption}"/> 
        </p:column> 
        <p:column headerText="Creation Date"> 
         <h:outputText value="#{alerts.createDate}"/> 
        </p:column> 
        <p:column headerText="Modify Date"> 
         <h:outputText value="#{alerts.modifyDate}"/> 
        </p:column> 
        <p:column headerText="Enabled"> 
         <h:outputText value="#{alerts.enabled}"/> 
        </p:column> 
        <f:facet name="footer"> 
         <p:commandButton process="@this" value="Update" icon="ui-icon-search" 
             update=":tabs:form:multiAlertUpdate" onclick="PF('multiAlertDialog')show()"/> 
        </f:facet> 
       </p:dataTable> 
       <p:dialog header="Update Selected" widgetVar="multiAlertDialog" modal="true" showEffect="fade" hideEffect="fade" resizable="false" width="200"> 
        <p:outputPanel id="multiAlertUpdate" style="text-align: center"> 
         <ui:repeat value="#{alertInputBean.selectedAlerts}" var="sAlerts"> 
          <p:outputLabel value="#{sAlerts.sev}-#{sAlerts.alertName}" style="display: block"/> 
         </ui:repeat> 
        </p:outputPanel> 
       </p:dialog>     
      </h:form> 
     </p:tab> 
    </p:tabView> 
</h:body> 

下面是XHTML 我有上面的代碼。問題是每當我點擊命令按鈕,我被重定向到第一個選項卡。預期的onClick根本不起作用。

回答

1

第一個命令按鈕

這是因爲您已經定義了ajax屬性爲false,而你試圖調用方法與actionListener它使用Ajax調用。

設置ajax=true或只是將其刪除(默認爲true),並且您的頁可能

如果你不想AJAX行爲,使用action代替actionListener


最後命令按鈕

如果問題出在最後的命令按鈕(請在接下來的時間更清晰),你只需要定義type=button,所以它會作爲一個簡單的按鈕。

<p:commandButton type="button" process="@this" value="Update" icon="ui-icon-search" 
update=":tabs:form:multiAlertUpdate" onclick="PF('multiAlertDialog')show()"/> 
+0

非常感謝。將嘗試看看是否有效。 – hopeIsTheonlyWeapon 2015-03-18 15:42:56

+1

謝謝..面對同樣的問題,但得到了解決 – vinod 2015-09-23 10:31:28