2014-10-31 76 views
0

我有一个表单。在表单中,我有一个数据表。下面你可以找到我的代码:p:commandButton设置其类型为提交时不起作用

<p:column headerText="Extra request"> 
    <p:commandButton id="requestDetailsButton" value="details" type="button" 
        update="detailPanel" 
        action="#{enbBean.sendEnbDetailsRequest(selectedEnbData.eNbAddress)}" 
        onclick="enbDetailsDialog.show()"> 

     <f:setPropertyActionListener id="rowSelected" value="a" target="#{enbBean.selectedEnbData}" /> 
    </p:commandButton> 
</p:column> 

的问题是,我需要与type=submit设置的命令按钮。但是当我这样做的时候,整个页面就会崩溃。为什么它打破了,我怎么能克服这个问题?

+0

你可以试试如果您希望在操作完成后显示对话框,请删除type =“button”并将“onclick”更改为“oncomplete”。 – Multisync 2014-10-31 14:03:06

+0

如果我删除type =“button”,那么整个页面都会中断并且不显示任何内容。这是我的问题... – 2014-10-31 14:05:47

+0

点击按钮后发生了什么?你的行为可能有问题吗?也正如我所知f:setPropertyActionListener没有id属性 – Multisync 2014-10-31 14:08:18

回答

1

你可以试试这个:

<p:commandButton id="requestDetailsButton" value="details" 
       update="detailPanel" 
       action="#{enbBean.sendEnbDetailsRequest}" 
       oncomplete="enbDetailsDialog.show()"> 
    <f:setPropertyActionListener value="a" target="#{enbBean.selectedEnbData}" /> 
</p:commandButton> 

public void sendEnbDetailsRequest() { 
    ... 
} 

setPropertyActionListener将设置#{} enbBean.selectedEnbData动作叫做

之前或者,你可以尝试这样的事:

<p:commandButton id="requestDetailsButton" value="details" 
       update="detailPanel" 
       actionListener="#{enbBean.sendEnbDetailsRequest}" 
       oncomplete="enbDetailsDialog.show()"> 
    <f:attribute name="selectedEnbData" value="a"/> 
</p:commandButton> 

public void sendEnbDetailsRequest(ActionEvent ae) { 
    String selectedEnbData = (String)ae.getComponent().getAttributes().get("selectedEnbData"); 
    ... 
}