我想在p:fileUpload的onComplete属性上执行支持bean的方法,因为我正在处理上传操作的一些inputText值,我希望在同一个上传点击的另一个方法中将这些值添加到文件中,这里我不想使用其他按钮操作。
所以我使用p:remoteCommand使用上面的javascript代码从bean调用方法。这里我在p:fileUpload的onComplete上调用javascript函数,调用p:remoteCommand的脚本调用insertProperty()方法。但是没有调用insertProperty()。这是怎么造成的,我该如何解决?提前谢谢。
javascript是
<script type="text/javascript">
function addProperties(){
lazyload();
}
</script>
</h:head>
我的代码是 `
<h:body>
<h:form id="mainformId"
style="background: #A9CEEA !important;margin-top:5px !important;">
<div>
<h:form id="uploadformId">
<p:messages id="msg"/>
<p:remoteCommand name="lazyload" process="@this"
actionListener="#{hubDocsBean.insertProperty}" >
</p:remoteCommand>
<p:panelGrid style="width:100%;">
<p:row>
<p:column colspan="4">
<p:fileUpload fileUploadListener="#{hubDocsBean.fileUpload}"
dragDropSupport="false"
allowTypes="/(\.|\/)(txt|doc|docx|xls|xlsx|pdf)$/"
update=":mainformId:tableformId:docTableId, msg" multiple="false"
process="IagencyId,ImarketId,IvendorId,IstationId" mode="advanced" sizeLimit="52428800" oncomplete="addProperties();" />
</p:column>
</p:row>
<p:row>
<p:column>
<h:outputText value="Agency" />
<p:spacer width="5"></p:spacer>
<p:inputText value="#{hubDocsBean.inputagency}" id="IagencyId" />
</p:column>
<p:column>
<h:outputText value="Market" />
<p:spacer width="5"></p:spacer>
<p:inputText value="#{hubDocsBean.inputmarket}" id="ImarketId" />
</p:column>
<p:column>
<h:outputText value="Vendor" />
<p:spacer width="5"></p:spacer>
<p:inputText value="#{hubDocsBean.inputvendor}" id="IvendorId" />
</p:column>
<p:column>
<h:outputText value="Station" />
<p:spacer width="5"></p:spacer>
<p:inputText value="#{hubDocsBean.inputstation}" id="IstationId" />
</p:column>
</p:row>`
答案 0 :(得分:-2)
顺便说一下,您不需要额外的Javascript。你可以使用:
的onComplete =&#34; lazyload()&#34;
而不是
的onComplete =&#34; addProperties();&#34;