如何在p:fileUpload上使用p:ajax oncomplete事件。使用时出错

时间:2012-04-13 05:28:43

标签: primefaces

我正在使用PrimeFaces 2.2。我正在使用p:fileuplaod,当fileUploads然后使用更新我更改我的页面上的图像。在这里。

<p:fileUpload id="countryFlag" widgetVar="uploader" description="Image"
      update="Flag" allowTypes="*.jpg;*.png;*.gif;*.jpeg;" auto="true"
      fileUploadListener="#{countryPages_Detail.imageUpload}">

    <p:ajax oncomplete="test('Flag')" />

</p:fileUpload>

<p:graphicImage id="Flag" value="#{countryPages_Detail.imagePath}"
      width="80" height="50" cache="false">

    <f:event type="preRenderComponent" listener="#{countryPages_Detail.putImage}" />                                                 

</p:graphicImage>

我想用脚本做的是当上传完成后,当图像被更改时使用ajax,那么我想检查图像src属性。这是我的test()函数,它不完整,但这里是

function test(imageId) {

    var imgId = imageId;
    var image =  $("#saarcImagesTable tr").find("img[id='imageId']")
    alert("Image change");
}

但我收到错误

  

父级不是ClientBehaviorHolder的实例:org.primefaces.component.fileupload.FileUpload@e39f71

为什么我收到此错误?我做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

p:fileUpload组件未按消息状态实现ClientBehaviorHolder接口,因此不包含可包含ajax标记的组件(请参阅this post)。

我不熟悉fileUpload组件,但我在PF 3.2的文档中看到p:fileUpload具有oncomplete属性。