当用户点击 <h:commandLink>
时,我试图阻止页面刷新在我的应用程序中。我试过这个但它不起作用:
更新:
<h:dataTable value="#{person.IssueList}" var="p" >
<h:column style="width: 20px">
<f:facet name="header">Issue</f:facet>
<h:commandLink value="#{p.IssueDesc}"/>
</h:column>
<h:column style="width: 20px">
<f:facet name="header">Reporting Date</f:facet>
<p:calendar value="#{p.issuerepDt}" rendered="#{p.editable}" id="CalendarId"/>
<h:outputText value="#{p.issuerepDt}" rendered="#{not p.editable}" />
</h:column>
<h:column>
<f:facet name="header">Action</f:facet>
<h:commandLink value="Edit" action="#{person.editAction(p)}">
<f:ajax execute="@form" render="@none" />
</h:commandLink>
</h:column>
</h:dataTable>
Java 片段:
public void editAction(PersonIssues pIssues) {
pIssues.setEditable(true);
}
我正在使用 editing jsf datatable 的概念来自 MKyong.I
最佳答案
我会尝试使用 f:ajax
的 listener
而不是 h:commandLink
的 action
:
<h:commandLink value="Edit">
<f:ajax listener="#{person.editAction(p)}" execute="@form" render="dataTableId calendarId" />
</h:commandLink>
此外,请注意您要在 ajax 之后呈现的内容。
关于java - 如何防止单击 <h :commandLInk> 时页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12624159/