commandbutton的primefaces中的Ajax调用
commandbutton的primefaces中的Ajax调用,ajax,primefaces,Ajax,Primefaces,<p:column id="column2" > <f:facet name="header"> <h:outputText value="Parameter Description" ></h:outputText> </f:facet> <h:outputText value="#{param1.parameter}"/> </p:column> <
<p:column id="column2" >
<f:facet name="header">
<h:outputText value="Parameter Description" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameter}"/>
</p:column>
<p:column id="column4" >
<f:facet name="header">
<h:outputText style="width:30px;margin-left:20px" value="Unit" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterUnit}"></h:outputText >
</p:column>
<p:column id="column5" >
<f:facet name="header">
<h:outputText value="Value Range" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterValuerange}"></h:outputText >
</p:column>
<p:column id="column3" >
<f:facet name="header">
<h:outputText style="margin-left:100px;width:70px;" value="Value" ></h:outputText>
</f:facet>
<h:inputText id="valuefield" value="#{param1.parameterValue}" onkeyup="return validateParameterInput(event,this,'#{param1.parameterValuerange}')">
<f:validateRequired />
</h:inputText >
</p:column>
</p:dataTable>
</div>
<div style="width: 1000px;">
<p:commandButton styleClass="btn" id="actbtn" action="#{ParameterMB.loadParameters()}" style="margin-top:10px;margin-left:50px;" onclick="return myFunction()" value="Apply">
<f:ajax execute="table" render="table" />
</p:commandButton>
当我试图在点击apply按钮时加载datatable时,它并没有发出ajax请求……有人能解释一下我做错了什么吗……提前感谢您在p commandbutton中使用f:ajax—一般来说,它是不兼容的。
<p:column id="column2" >
<f:facet name="header">
<h:outputText value="Parameter Description" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameter}"/>
</p:column>
<p:column id="column4" >
<f:facet name="header">
<h:outputText style="width:30px;margin-left:20px" value="Unit" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterUnit}"></h:outputText >
</p:column>
<p:column id="column5" >
<f:facet name="header">
<h:outputText value="Value Range" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterValuerange}"></h:outputText >
</p:column>
<p:column id="column3" >
<f:facet name="header">
<h:outputText style="margin-left:100px;width:70px;" value="Value" ></h:outputText>
</f:facet>
<h:inputText id="valuefield" value="#{param1.parameterValue}" onkeyup="return validateParameterInput(event,this,'#{param1.parameterValuerange}')">
<f:validateRequired />
</h:inputText >
</p:column>
</p:dataTable>
</div>
<div style="width: 1000px;">
<p:commandButton styleClass="btn" id="actbtn" action="#{ParameterMB.loadParameters()}" style="margin-top:10px;margin-left:50px;" onclick="return myFunction()" value="Apply">
<f:ajax execute="table" render="table" />
</p:commandButton>
换成
<p:column id="column2" >
<f:facet name="header">
<h:outputText value="Parameter Description" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameter}"/>
</p:column>
<p:column id="column4" >
<f:facet name="header">
<h:outputText style="width:30px;margin-left:20px" value="Unit" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterUnit}"></h:outputText >
</p:column>
<p:column id="column5" >
<f:facet name="header">
<h:outputText value="Value Range" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterValuerange}"></h:outputText >
</p:column>
<p:column id="column3" >
<f:facet name="header">
<h:outputText style="margin-left:100px;width:70px;" value="Value" ></h:outputText>
</f:facet>
<h:inputText id="valuefield" value="#{param1.parameterValue}" onkeyup="return validateParameterInput(event,this,'#{param1.parameterValuerange}')">
<f:validateRequired />
</h:inputText >
</p:column>
</p:dataTable>
</div>
<div style="width: 1000px;">
<p:commandButton styleClass="btn" id="actbtn" action="#{ParameterMB.loadParameters()}" style="margin-top:10px;margin-left:50px;" onclick="return myFunction()" value="Apply">
<f:ajax execute="table" render="table" />
</p:commandButton>
<p:ajax process="table" update="table" />
将您的操作也更改为actionListener,并删除方法调用上的()。我假设您希望保持在相同的页面上,因为p:commandbutton上没有ajax=“false”
<p:column id="column2" >
<f:facet name="header">
<h:outputText value="Parameter Description" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameter}"/>
</p:column>
<p:column id="column4" >
<f:facet name="header">
<h:outputText style="width:30px;margin-left:20px" value="Unit" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterUnit}"></h:outputText >
</p:column>
<p:column id="column5" >
<f:facet name="header">
<h:outputText value="Value Range" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterValuerange}"></h:outputText >
</p:column>
<p:column id="column3" >
<f:facet name="header">
<h:outputText style="margin-left:100px;width:70px;" value="Value" ></h:outputText>
</f:facet>
<h:inputText id="valuefield" value="#{param1.parameterValue}" onkeyup="return validateParameterInput(event,this,'#{param1.parameterValuerange}')">
<f:validateRequired />
</h:inputText >
</p:column>
</p:dataTable>
</div>
<div style="width: 1000px;">
<p:commandButton styleClass="btn" id="actbtn" action="#{ParameterMB.loadParameters()}" style="margin-top:10px;margin-left:50px;" onclick="return myFunction()" value="Apply">
<f:ajax execute="table" render="table" />
</p:commandButton>
做什么:return myFunction()做什么?myFunction()用于确认对话框……我已经尝试了更改,但ajax调用仍未实现
<p:column id="column2" >
<f:facet name="header">
<h:outputText value="Parameter Description" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameter}"/>
</p:column>
<p:column id="column4" >
<f:facet name="header">
<h:outputText style="width:30px;margin-left:20px" value="Unit" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterUnit}"></h:outputText >
</p:column>
<p:column id="column5" >
<f:facet name="header">
<h:outputText value="Value Range" ></h:outputText>
</f:facet>
<h:outputText value="#{param1.parameterValuerange}"></h:outputText >
</p:column>
<p:column id="column3" >
<f:facet name="header">
<h:outputText style="margin-left:100px;width:70px;" value="Value" ></h:outputText>
</f:facet>
<h:inputText id="valuefield" value="#{param1.parameterValue}" onkeyup="return validateParameterInput(event,this,'#{param1.parameterValuerange}')">
<f:validateRequired />
</h:inputText >
</p:column>
</p:dataTable>
</div>
<div style="width: 1000px;">
<p:commandButton styleClass="btn" id="actbtn" action="#{ParameterMB.loadParameters()}" style="margin-top:10px;margin-left:50px;" onclick="return myFunction()" value="Apply">
<f:ajax execute="table" render="table" />
</p:commandButton>