いいね!数

0

閲覧数
210

XPagesのビューで列にチェックボックスを設置し、フォーム上のボタンを押したときにビューのどの文書を選択したかをsessionScopeに格納してページを開く処理をさせたいのですが、非同期で動作する為かタイミングによりうまく選択文書を連携できないことがあります。

iPadのサファリ、PCのブラウザ(IE)でもうまくいったりいかなかったり・・・

-- ビューのチェックボックス(データ:計算結果の値)<SSJS>

var noteId = viewEntry.getNoteID();
viewScope.checkboxValue[noteId] = "@@@";
return "";

 

-- フォームのボタン<SSJS> ※_blankでページを起動する為、ボタンではなくリンクで実装

sessionScope.selectList = "";
var ids = getComponent("viewListPanel").getSelectedIds();
if (ids.length == 0) {
    return false;
}
var rowData = ""
for(var i=0; i<ids.length; i++){
 if(viewScope.checkboxValue[ids[i]] != ""){
  rowData += viewScope.checkboxValue[ids[i]] + ",";
 }
}
var text = rowData.substr( 0 , (rowData.length-1) );
sessionScope.selectList = text;
return true;
 

選択文書の処理方法が良くないのでしょうか?

別タブで開くページに選択文書の情報を確実に渡すにはどうしたら良いでしょうか?

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - XPages | タグ:
  | 質問日時:2018/11/14 15:20:07

回答・コメント

いいね!数

0

こんにちわ。

_blankでページを起動する為、ボタンではなくリンクで実装」が気になります。

選択文書の情報をセットするSSJSとblank指定で開く別タブのページに開く順序の問題のような気がします。

別タブ開くのはSSJSでpostScriptを使う方法ですか

 

回答日時:2018/11/14 20:58:58

いいね!数

0

ありがとうございます。

SSJSでpostScriptを使う方法 も試しましたがiPadでうまく動かず'(SSJS完了前にpostScriptが動く)、苦肉の策でこのような処理をしています。

(結局うまく動いていませんが・・・)

文書選択のチェックボックスクリックのたびにSSJSが処理できれば良いのですが・・・

回答日時:2018/11/14 22:16:22

いいね!数

0

やっぱり、別タブというか別ウィンドウを開くタイミングと、SSJSが動く順序が確定してないだけですよね。

だったら、質問の仕方が違うような気がしますね。

別タブにこだわるなら、リンクで開くURLに選択状態の情報を乗せるとか。

CSJSは専門外なので詳しくはしらないんですが。

後は別タブあきらめて、ポップアップパネル(正確な呼び方はなんですかね?)で処理するかですね。

/Yac

回答日時:2018/11/15 12:47:50