0

我使用隐藏值和 primeface 的 remoteCommand 将参数从 Javascript 函数传递给 ManagedBeans。在托管 bean 中,我正在进行一些 web 服务调用。在使用 update 属性进行 web 服务调用后,我需要更新 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>
4

2 回答 2

1

看起来像一个错字,您想更新:pForm:activeTable但该表称为activeStoreTable

于 2012-09-04T12:19:05.510 回答
0

我认为你没有正确完成它我猜远程命令没有被调用,因为要调用它你应该替换 onclick="setCenter('#{stIter.Name}' 到 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}');"

我希望它会有所帮助

于 2013-12-15T15:35:06.850 回答