我有这个代码。它应该在用户选择一行并关闭对话框后触发rowSelect事件。它在我更新到primfaces 3.3之前工作得很好(我有ver3.2)。我在控制台中没有任何异常,当我调试时,我看到方法没有调用。我不知道从哪里开始解决这个问题。有人可以帮我这个吗?
<p:dialog id="dlg" closable="true" header="New reciever" widgetVar="receiverListDlg" visible="false" modal="true">
<p:dataTable var="reciever" value="#{transactionController.recieverList}">
<p:ajax event="rowSelect" listener="#{transactionController.onRowSelect}" update=":form" onsuccess="receiverListDlg.hide()" />
<f:facet name="header">
Previouse recievers for #{customer.firstName}
</f:facet>
<p:column selectionMode="single" />
<p:column headerText="#{msg.havale_customer_firstname}">
<h:outputText value="#{reciever.firstName}" />
</p:column>
<p:column headerText="#{msg.havale_customer_lastName}">
<h:outputText value="#{reciever.lastName}" />
</p:column>
<p:column headerText="#{msg.havale_customer_phoneNr}">
<h:outputText value="#{reciever.phoneNr}" />
</p:column>
</p:dataTable>
</p:dialog>
答案 0 :(得分:7)
现在Primefaces提供了一些新的ajax事件:
因此,rowSelect
和rowUnselect
不会被解雇。
答案 1 :(得分:3)
我认为你应该使用“rowSelectRadio”ajax事件。
答案 2 :(得分:2)
dataTable应该被<h:form>
包围。另外你应该将以下属性添加到p:dataTable(我不知道是否所有这些都是必需的,但是我拥有它们并且它工作正常)。
- selectionMode="single"
- rowKey="#{receiver.id
}“(将”id“替换为Receiver的实际ID属性)
- selection="#{transactionController.selectedReceiver"
答案 3 :(得分:0)
我是stackoverflow的新用户,但我经常使用它,因为我看到这是Prime发生的事情! ;-)
好的,我目前正在将RichFaces 3.3.3 JSF 1.2项目迁移到Mojarra 2.1.7(SNAPSHOT 20120206)和PrimeFaces 3.3,这是IMHO对JSF的启示。
长话短说,我正在寻找半个星期内在主题中提到的这个错误,我试着回到PF 3.2和tataaaa rowSelect,现在所有其他实现工作。
我有一个带有数据表和selectionMode =“multiple”的简单表单和ajax事件:
<h:form>
<p:dataTable id="massnahmenAuswahl"
value="#{massnahmenController.massnahmen}"
var="eineMassnahme"
selection="#{massnahmenController.massnahmenSelected}"
rowKey="#{eineMassnahme.massnahme}">
<p:ajax event="rowSelect"
listener="#{massnahmenController.rowSelected}" process="@this"
update="@this" />
<p:ajax event="rowUnselect"
listener="#{massnahmenController.rowUnselected}" process="@this"
update="@this" />
<p:ajax event="toggleSelect"
listener="#{massnahmenController.rowToggleSelected}" process="@this"
update="@this" />
<p:column selectionMode="multiple" style="width:18px"
disabledSelection="#{!login.editable}" styleClass="checkbox" />
<p:column>
<h:outputText escape="false" value="#{eineMassnahme.zeile}" />
</p:column>
<p:column>
<h:outputText escape="false" value="#{eineMassnahme.bezeichnung}" />
</p:column>
<p:column>
<fiona:labelImgGA for="#{eineMassnahme.massnahme}" />
</p:column>
<p:column>
<p:selectBooleanCheckbox value="#{eineMassnahme.vorjahr}"
disabled="true" />
</p:column>
<f:facet name="footer">
<p:commandButton value="Speichern"
action="#{massnahmenController.speichern}"
disabled="#{!login.editable}" process="@this" update="@form" />
<p:spacer/>
<p:commandButton value="Weiter"
action="#{massnahmenController.saveAndNext}"
disabled="#{!login.editable}" process="@this" update="@form" />
</f:facet>
</p:dataTable>
</h:form>
这会在不久的将来得到解决吗? 直到现在我真的去PF了! 不要让我失望! ; - )
更新:
解决方案是使用lazy = true,因为PF 3.3。我在PrimeFaces问题跟踪器中看到了问题2993!