无法附加到非ClientBehaviorHolder父级
发布时间:2020-12-16 01:36:37 所属栏目:百科 来源:网络整理
导读:我使用JSF 2,primefaces 4.0,我尝试使用DataTable – In-Cell Editing,因为它是在primefaces展示中生成的,但我有一个错误,虽然我复制了showcase中显示的相同示例 错误是 p:ajax Unable to attach p:ajax to non-ClientBehaviorHolder parent 这是xhtmlpageco
我使用JSF 2,primefaces 4.0,我尝试使用DataTable – In-Cell Editing,因为它是在primefaces展示中生成的,但我有一个错误,虽然我复制了showcase中显示的相同示例
错误是 <p:ajax> Unable to attach <p:ajax> to non-ClientBehaviorHolder parent 这是xhtmlpagecode <rich:panel style="width : 800px; height : 551px; " > <f:facet name="header" > <h:outputText value="Tableau des articles" align="center" style="FONT-SIZE: small;"/> </f:facet> <h:form id="form"> <p:dataTable id="cars" var="car" value="#{articlesbean.LMatpilotaccess1}" editable="true" editMode="cell" widgetVar="carsTable"> <f:facet name="header"> Matériel du pilotage et accessoires </f:facet> <p:growl id="messages" showDetail="true"/> <p:contextMenu for="cars" widgetVar="cMenu"> <p:menuitem value="Edit Cell" icon="ui-icon-search" onclick="PF('carsTable').showCellEditor();return false;"/> <p:menuitem value="Hide Menu" icon="ui-icon-close" onclick="PF('cMenu').hide()"/> </p:contextMenu> <p:column headerText="Serie" style="width:25%"> <p:ajax event="cellEdit" listenner="#{articlesbean.onCellEdit}" update=":form:messages" /> <p:cellEditor> <f:facet name="output"><h:outputText value="#{car.serie}" /></f:facet> <f:facet name="input"><p:inputText id="modelInput" value="#{car.serie}" style="width:96%"/></f:facet> </p:cellEditor> </p:column> </p:dataTable> </h:form> </rich:panel> 这是我的豆子 @ManagedBean(name="articlesbean") @ViewScoped public class ArticlesBean implements Serializable{ @Inject private ArticlesDAO articleDAO; @Inject private Matpilotaccess1 matpilotaccess1; @Inject private Matpilotaccess2 matpilotaccess2; @Inject private Poteaux poteaux ; @Inject private Travgc1 travgc1; @Inject private Travgc2 travgc2; @Inject private Travresurbain travresurbain; private List LMatpilotaccess1 = new ArrayList(); private List LMatpilotaccess2 = new ArrayList(); private List LPoteaux = new ArrayList(); private List LTravgc1 = new ArrayList(); private List LTravgc2 = new ArrayList(); private List LTravresurbain = new ArrayList(); public void onCellEdit(CellEditEvent event) { Object oldValue = event.getOldValue(); Object newValue = event.getNewValue(); if(newValue != null && !newValue.equals(oldValue)) { FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Cell Changed","Old: " + oldValue + ",New:" + newValue); FacesContext.getCurrentInstance().addMessage(null,msg); } } //// Getters and setters
你嵌套了< p:ajax>在< p:column>内< p:ajax>需要嵌套在实现
ClientBehaviorHolder interface的组件中.但是,Column component class后面的< p:column>没有实现它.
DataTable component class落后< p:dataTable>实现它.
你应该嵌套< p:ajax>在< p:dataTable>内代替: <p:dataTable ...> <p:ajax ... /> <p:column ...> ... </p:column> </p:dataTable> Exactly as demonstrated on their showcase site.换句话说,你的陈述
其实不是真的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |