0

そのため、私は、ユーザーがオブジェクトの子コンポーネントを編集してページを更新できるようにする、visualforceページの「アイテムの編集」モーダルに取り組んできました。現状では、親オブジェクトIDを含む単一のURLパラメーターがあります。コードは次のように構成されています。

<apex:form id="edit-modal">
     <!-- Modal Content-->
     <apex:actionFunction action="{!updateModalObject}" name="updateModalObject">

     </apex:actionFunction> 
</apex:form>

ユーザーがモーダルで「保存」ボタンを押すと、前述のアクション関数が呼び出されます。コントローラのクラスは次のようになります。

public PageReference updateModalObject(){        
    database.update(modalObject); 

    return null;
}

このアクションが完了すると、ページが更新され、URLパラメータも削除され、全体が混乱します。コードのどの部分が更新を引き起こしているのか、それがactionfunctionなのか、それともコントローラーの更新なのかはわかりません。

4

1 に答える 1

1

あなたが言った:

ユーザーが「保存」ボタンを押すと...

これがページの更新を引き起こしていると思います。reRender タグなしでコマンド ボタンを使用しますか? 解決策は次のようになります。

このトリックを試してみてください - JavaScript 関数を実行した後に return false を追加してください:

<apex:commandButton value="Save" onclick="updateModalObject(); return false;"/>

ページのリロードを回避する別の方法は、ダミーの reRender タグを追加することです。

<apex:commandButton value="Save" onclick="updateModalObject()" reRender="none" />

また

<apex:actionFunction action="{!updateModalObject}" name="updateModalObject"  reRender="none">

ページのリロードを回避するには、「何か」を再レンダリングする必要があります。それ以外の場合、コマンド ボタンはページ全体をリロードします。私たちの場合、「何も」再描画します。

于 2012-08-10T13:16:36.747 に答える