apex:commandButtonを押下して別画面を起動する
以前の記事で、apex:commandButtonを使って別画面起動が出来なかったと書いたけど、色々試したら出来た。
<apex:page controller="foo"> <apex:form id="frmHide" target="_blank"> <apex:commandButton id="btnHide" value="別画面起動" action="{!openPage}" style="display:none;" /> </apex:form> <apex:form id="frmMain"> <apex:commandButton id="btnMain" value="別画面起動" onclick="document.getElementById('{!$Component.frmHide.btnHide}').click();return false;" /> </apex:form> </apex:page>
表示するボタンと、非表示のボタンを2つ使う。
表示するボタンは、JavaScriptで非表示のボタンを押下するだけ。
非表示のボタンがあるapex:formは、target属性を"_blank"にして、ボタン押下時に別画面起動させる。
ああ、apex:commandLinkをボタン風にするより簡単だ・・・