動的コンテンツコントロールには、必要に応じて表示可能なコンテンツの代替セットが含まれます。
以下の例に示すコントロールは、ユーザーがリンクをクリックしたときに、ビューまたはフォームを表示することができます。クリックによってコントロールのコンテンツの部分更新がトリガーされるため、ブラウザは実際には同じページに留まります。サーバーサイドでは、動的コンテンツコントロールが自身の子を置き換えています。
ユーザーが [すべての連絡先を表示] をクリックすると、以下のようなページが表示されます。
ユーザーが [最初の連絡先を編集] をクリックすると、以下のようなページが表示されます。
<xe:dynamicContent id="dynp" defaultFacet="view" useHash="true" >
<xp:this.facets>
<xp:panel xp:key="view" id="panel1" >
<xp:viewPanel rows="10" id="viewPanel1" var="row" >
...
</xp:viewPanel>
</xp:panel>
<xp:panel xp:key="contact" id="panel2" >
<xp:this.data>
<xp:dominoDocument var="document1" formName="Contact" >
</xp:dominoDocument>
</xp:this.data>
...
</xp:panel>
</xp:this.facets>
</xe:dynamicContent>
var c = getComponent("dynp")
c.show("view")
var c = getComponent("dynp")
c.show("contact",{action:'editDocument'
,documentId:dataAccess.firstContactID})
一般的なリンク実装では、show() メソッドを呼び出して動的コンテンツコントロールを部分更新します。
partialExecute false
useHash true
http://.../XPagesExt.nsf/Core_DynamicPage.xsp#content=contact&action=editDocument&documentId=8FA
また、ユーザーによる URL の変更 (ブックマークに移動したり、[戻る] ボタンや [次へ] ボタンを使用したりする) を追跡するために、Dojo リスナーもインストールされます。変更が検出されると、Ajax 要求が自動的にサーバーに送信され、コンテンツが更新されます。
XSP.showContent("#{id:dynp}","view")
#content=view
サーバーサイドでは、ハッシュからのパラメータが requestMap または requestParameterMap に自動的に追加されるため、データソースや他のコントロールにとって透過的になります。
var c = getComponent("dynp")
c.show("view")
このボタンイベントでは、動的コンテンツコントロールに対して部分更新を実行する必要があります。
var c = getComponent("dynp")
var id = row.getNoteID()
c.show("contact",{action:'editDocument',documentId:id})