【发布时间】:2012-02-16 15:32:47
【问题描述】:
我在 Glassfish 3.1.1 上使用 Primefaces 3.1、JSF 2.1.6。
我有很多可以正常工作的命令按钮,但是这个没有,我不知道为什么。 javascript 警报触发,但从未调用控制器方法。
请注意,第一个命令按钮会完美触发(过滤器按钮),但数据表内的编辑按钮不会触发。我尝试了 ui:repeat 而不是 dataGrid ,但这给出了相同的效果/问题。 我有很多其他带有命令按钮的数据表,但它们都可以正常工作......奇怪。
<h:form id="memberships" prependId="false">
<h:panelGrid columns="3">
<h:outputLabel value="Filter on EPS" />
<p:selectOneMenu value="#{epsMembershipViewController.selectedEps}"
style="width:200px" effect="fold" editable="false" id="selectEps">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{epsMembershipViewController.allEps}" />
</p:selectOneMenu>
<p:commandButton value="Filter"
action="#{epsMembershipViewController.repopulateView}" ajax="false" />
</h:panelGrid>
<br />
<p:dataGrid var="eps" value="#{epsMembershipViewController.ldapEpss}"
columns="1">
<h:outputLabel value="#{eps}"
style="font-weight: bold;font-size: 14px;" />
<p:dataTable var="ldapUser" id="id_#{eps}"
value="#{epsMembershipViewController.getUsersByEpsFromLdap(eps)}"
paginator="false" selectionMode="single" rowKey="#{ldapUser.name}"
rowStyleClass="#{ldapUser.expired == 'Yes' ? 'expired' : null}">
....... columns
<p:column style="width:20px">
<f:facet name="header">
<h:outputText value="" />
</f:facet>
<p:commandButton icon="ui-icon-extlink"
onclick="alert('this event does not work')" ajax="false"
action="#{epsMembershipViewController.edit()}" />
</p:column>
</p:dataTable>
<br />
<br />
</p:dataGrid>
</h:form>
豆码
public String edit(ActionEvent e) {
log.debug("EDIT USER 22222 ");
return "eps-search";
}
感谢您的帮助, 科恩
【问题讨论】:
-
尽量缩短你的例子。这样做时,您有很好的机会找出您的问题。否则我们有更好的机会在您的示例中找到相关的代码行。
-
根据我(已删除)答案中的 OP 的 cmets,原因原来是
<p:dataGrid>中缺少<p:column>。
标签: java ajax jsf primefaces