我使用primefaces自动完成在我的应用提出的userIds到User.Once用户呈现父面板组分量输入三个字符到3210文本框我UserIds
名单将被建议给用户自动完成。只要用户从列表中选择了userId,我就会按照以下格式John Doe(jd123)
更新输出文本中的用户名和姓,并在此名称旁边显示一个Delete
按钮。由于在代码首先Ajax请求的意见所示工作完美fine.But当我试图删除,我使用<h:outputText/>
打印我收到一个错误是未能与<p:ajax>
javax.faces.FacesException名称:找不到标识为 的“组件”“j_idt34:0:imgid”引用的“项目”。
我的代码:
<h:outputLabel value="Select user" for="acMinLength" />
<p:autoComplete id="acMinLength"
minQueryLength="3"
value="#{autoCompleteBean.txt2}"
completeMethod="#{autoCompleteBean.complete}">
<p:ajax event="itemSelect"
listener="#{autoCompleteBean.handleSelect}"
update="items"/> // First Ajax request perfectly working fine
</p:autoComplete>
<h:outputLabel value="selectedUsers" for="acMinLength" />
<h:panelGroup id="items">
<ui:repeat value="#{autoCompleteBean.printId}" var="item">
<h:outputText value="#{item}"/>
<h:graphicImage name="delete.png" library="images" id="imgid">
<p:ajax event="click"
listener="#{autoCompleteBean.updateList}"
update="items"/> // This is where i am getting exception
</ui:repeat>
<h:panelGroup>
我知道我可以更新与孩子Ajax请求父组件。但我不知道我做错了什么。
最终,上述表达式呈现为':items'与我已经尝试过,但没有luck.Yes我可以更新的形式,但它搅乱了我的设计。正如你上面看到我的代码,它能够找到我从'该组件外部'更新的时间,但不能通过它的子组件 – SRy