いいね!数

0

閲覧数
99

タブ付きパネル内のタブパネル(tabPanel1)内にあるページ内の画像のリンクをクリックしたときに、

別のパネル(tabPanel2)を開いて表示させたいと考えています。

以下の方法を試してみたのですが、うまくいきません。

①リンクのon Clickイベントに以下のコードを記述

sessionScope.put("map","tab2");

全てを更新

②タブ付きパネルの「デフォルトで開くタブ」に以下のコードを記述

if(sessionScope.get("map")=="tab2"){
 view.postScript("alert('タブのイベント')");
 sessionScope.put("map","");
 return "tabPanel2";
}else{
return "tabPanel1"
}

1回目はうまく行きますが、2回目にリンクをクリックしても②のコードが実行されないようです。

他に動作を実現する方法はないでしょうか?

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - XPages | タグ:
  | 質問日時:Mar 19, 2020, 2:17:04 PM

回答・コメント

いいね!数

1

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

	<xp:tabbedPanel id="tabbedPanelSt" partialRefresh="false">
		<xp:this.selectedTab><![CDATA[#{javascript:
viewScope.tabStatus = viewScope.tabStatus || "tab1";
return viewScope.tabStatus;
}]]></xp:this.selectedTab>
		<xp:tabPanel label="tab1" id="tab1" href="#tab">
			<xp:image url="/logo.png" id="image1">
				<xp:eventHandler event="onclick" submit="true"
					refreshMode="partial" refreshId="tabbedPanelSt" disableValidators="true">
					<xp:this.action><![CDATA[#{javascript:viewScope.tabStatus  = "tab2";}]]></xp:this.action>
				</xp:eventHandler>
			</xp:image>
		</xp:tabPanel>
		<xp:tabPanel label="tab2" id="tab2" href="#tab">
			<xp:image url="/logo.png" id="image2">
				<xp:eventHandler event="onclick" submit="true"
					refreshMode="partial" refreshId="tabbedPanelSt" disableValidators="true">
					<xp:this.action><![CDATA[#{javascript:viewScope.tabStatus  = "tab1";}]]></xp:this.action>
				</xp:eventHandler>
			</xp:image>

		</xp:tabPanel>
	</xp:tabbedPanel>

</xp:view>

XSnippetsにXPAGESのコードを記述しました。

お試しください。

回答日時:Mar 19, 2020, 5:30:24 PM

いいね!数

0

Kazu Tatsukiさん、サンプルをありがとうございました。

説明が足りなくて申し訳なかったのですが、やりたいことは、タブ内のある画像のリンク(リンクA)をクリックしたときに

アンカーリンクが動作するように別のパネル(tabPanel2)を開いて表示させたいのですが、それ以外は通常通りタブを

クリックして画面を切り替えさせたいと思っております。

頂いたサンプルを試したところ、タブでの切り替えはできないようなのですが、リンクAをクリックしたときだけ

特定のタブを開かせて、その他はタブの切り替えで画面が変わるようにできるようにできますでしょうか?

回答日時:Mar 23, 2020, 11:47:43 AM