0

如标题所示,当我单击 a4j:commandLink 时,该方法完美执行并更新了我需要的表。

问题是页面的 js 在 a4j:commandLink 发布到 bean 之后消失了。

编辑:更清楚一点,当我的意思是 js 消失时,发生的事情是当我在 Mozilla firebug 中查找页面的 javascript 时,它没有显示出来。这是正常的吗?我究竟做错了什么?有什么最好的方法吗?

代码是:

<h:panelGroup id="examplePanel" >
<h:panelGroup rendered="#{not empty exampleBean.list}">
<table id="listDataTable" width="100%" cellspacing="0" 
    cellpadding="0" border="0" style="margin-left: 0pt; width: 716px;">
    <thead>
        <tr>
            <th>col1</th>
            <th>col2</th>
            <th>col3</th>                               
            <th class="shortCol">col4</th>
        </tr>       
    </thead>
    <tbody>
    <a4j:repeat value="#{exampleBean.list}" rowKeyVar="itStatus" var="item">
        <tr>
            <td>
                <h:outputText value="#{exampleBean.exampleShow(item)}" />
            </td>
            <td>
                <h:outputText value="#{exampleBean.exampleShow(item)}" />
            </td>
            <td>
                <h:outputText value="#{exampleBean.exampleShow(item)}" />
            </td>                  
            <td>
                <h:commandLink action="#{exampleShow(item)}" ></h:commandLink>
            </td>                               
        </tr>           
    </a4j:repeat>
    </tbody>
</table>
</h:panelGroup>
</h:panelGroup>
<h:outputLabel value="* #{locale.name}:" />
<h:inputText value="#{exampleBean.exampleName}"
disabled="#{not exampleBean.edit}" id="exampleName" />

<div class="button search">
**<a4j:commandLink action="#{exampleBean.objetToTable}" value="#{locale.create}" render="exampleTurnPanel" ></a4j:commandLink>**
</div>  

在此之前,我在里面使用 ah:commandLink 和 af:ajax。但是有了这个,bean 没有值,因为 POST 从未完成。正确的?

<h:commandLink action="#{exampleBean.objetToTable}"                     value="#{locale.create}">
<f:ajax execute="examplePanel" render="examplePanel" onevent="setExampleTableCss"/>                             </h:commandLink>

问候。

4

1 回答 1

0

我不确定消失的 JavaScript 到底是什么意思,但请注意,您的<a4j:commandLink>更新exampleTurnPanel不会刷新整个页面。这意味着新内容exampleTurnPanel不受您在加载页面时执行的任何 JavaScript 的影响。

如果你有一些 JavaScript 代码会影响 的内容exampleTurnPanel,那么你应该把它放在里面exampleTurnPanel,以使它在面板的每次更新时运行。oncomplete或者,您可以在更新后使用的属性显式调用它<a4j:commandLink>

如果<h:commandLink>你需要<f:ajax event = "action" ... />,虽然它不应该不同于<a4j:commandLink>(但是请注意,onevent="setExampleTableCss"<f:ajax>- 你不需要它吗?)oncomplete<a4j:commandLink>

于 2012-10-10T14:29:47.757 回答