我正在使用隐藏值和primeface的remoteCommand.In托管bean将参数从Javascript函数传递到ManagedBeans,我正在进行一些bean服务调用。在使用update属性进行for服务调用之后,我需要更新primeface数据表,而在oncomplete中,我正在调用JS.Botn update和oncomplete对我不起作用。
<h:form id ="pForm">
<p:dataTable style="height:500px;" id="activeStoreTable" var="stIter" value="# {flowScope.str}" >
<p:column width="140" filterBy="#{stIter.Name}">
<p:commandLink update="@form"
onclick="setCenter('#{stIter.Name}' );"/>
</p:column>
</p:dataTable>
<h:inputHidden id="update" value="#{updateBean.value}" />
<p:remoteCommand name="remoteCommand" process="update" update=":pForm:activeTable" oncomplete="init('flowScope.Str');"/>
<p:commandButton value="save" onclick="check();" name="saves" >
</h:form>发布于 2012-09-04 20:19:06
看起来像是拼写错误,您想要更新:pForm:activeTable,但该表名为activeStoreTable
发布于 2013-12-15 23:35:07
我认为您没有正确地完成它,我猜是远程命令没有被调用,因为要调用它,您必须将onclick="setCenter('#{stIter.Name}‘to onclick=“remotecommand ()”替换为“onclick="remoteCommand()",要传递'#{stIter.Name}’参数,您可以这样做
然后你会得到类似这样的东西:
<h:form id ="pForm">
<p:dataTable style="height:500px;" id="activeStoreTable"
var="stIter" value="# {flowScope.str}" >
<p:column width="140" filterBy="#{stIter.Name}">
<p:commandLink update="@form"
onclick="remoteCommand()"
oncomplete="javascript:init('flowScope.Str');"
/>
</p:column>
</p:dataTable>
<h:inputHidden id="update" value="#{updateBean.value}" />
<p:remoteCommand name="remoteCommand" process="update"
update=":pForm:activeTable" >
<f:setPropertyActionListener value="#{stIter.Name}"
target="#{bean.methodName()}" />
</p:remoteCommand>
<p:commandButton value="save" onclick="check();" name="saves" >
</h:form>我不知道您到底在做什么,但是在您的代码中,我认为您没有调用远程组件命令。
另外,我猜oncompleteAttribute不工作可能是因为它缺少一些东西,也许你可以试试这个:
oncomplete="javascript:init('flowScope.Str');“
还可以从jsf传递变量,如下所示
oncomplete="javascript:somefunction('${bean.StringAttribute}');“
我希望这会对你有所帮助。
https://stackoverflow.com/questions/11437450
复制相似问题