0

タイトルが示すように、a4j:commandLink をクリックすると、メソッドが完全に実行され、必要なテーブルが更新されます。

問題は、a4j:commandLink が Bean にポストされた後、ページの js が消えていることです。

編集:もう少し明確にするために、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 を使用していました。しかし、これでは、POST が実行されないため、Bean には値がありませんでした。正しい?

<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内に配置する必要があります。または、更新後に属性 ofexampleTurnPanelを使用して明示的に呼び出すこともできます。oncomplete<a4j:commandLink>

<h:commandLink>が必要な場合は<f:ajax event = "action" ... />、 と違いはありません<a4j:commandLink>(ただし、onevent="setExampleTableCss"inでは<f:ajax>必要ないことoncompleteに注意してください<a4j:commandLink>?)。

于 2012-10-10T14:29:47.757 に答える