アプリケーションにxe:applicationLayoutを使い始めたところです。「プレイスバー」に「ベーシックノード」を追加しました。ノード/ボタンのクリックでサーバー側のJavaScriptコードを実行したい。基本ノードのonClickプロパティを計算しようとしましたが、これは何も実行せず、onClickはクライアント側のJavaScriptのみを実行しているようです。
SSJSを実行できるプロパティまたはノードはありますか?助けてくれてありがとう。
アプリケーションにxe:applicationLayoutを使い始めたところです。「プレイスバー」に「ベーシックノード」を追加しました。ノード/ボタンのクリックでサーバー側のJavaScriptコードを実行したい。基本ノードのonClickプロパティを計算しようとしましたが、これは何も実行せず、onClickはクライアント側のJavaScriptのみを実行しているようです。
SSJSを実行できるプロパティまたはノードはありますか?助けてくれてありがとう。
ノードの submitValue プロパティを設定します。(手順は、アプリケーション レイアウトのすべての場所で同じです。ここでは、banner.ApplicationLinks のスニペットの例を示します)。
<xe:this.bannerApplicationLinks>
<xe:basicContainerNode styleClass="firstApplication" label="${langString_CRM['CREATE']}">
<xe:this.children>
<xe:basicLeafNode submitValue="company_new"
次に、イベント ハンドラーをページに追加し、送信された値に応じて SSJS を実行します。
<xp:eventHandler event="onItemClick" submit="true"
refreshMode="partial" disableValidators="true" refreshId="cois_application_layout"
execMode="partial">
<xp:this.action><![CDATA[#{javascript:
var submittedValue=context.getSubmittedValue();
// evaluate the submitted value here ...
最も優れたバージョンではありませんが、機能します。ボタンを XPage に追加し、css を使用して非表示にします。アプリケーションのレイアウトに、dojo.byId を使用してボタンへのハンドルを取得し、それらに対して click() を実行するクライアント側スクリプトを追加します。そうすれば、別のボタンをクリックしたときに別のパネルを簡単に更新できます。