1

質問が正しいかわかりませんか?気が狂ったら気にしないでください。実際、私はxpagesアプリケーションに取り組んでいます。そこで、2つのことを行う必要があります。それは、選択リスト機能を追加することと、field_1、field_2、field_3、...などの動的データを顧客の選択に応じて最大n個までバインドすることです。両方のカスタムコントロールに複合データを使用しています。選択リストコントロールの複合データを削除できます。また、スコープ変数を渡すことで削除できます。しかし、それは複合データよりも時間がかかります。

エラーは発生しませんでした。しかし、バインドされたドキュメントは保存されていません。

複合データを持つCCをインポートすることは可能ですか?

最初のCCのコード:-

<xc:viewpicklist datasrc="view1" dialogID="dialog1" dialogWidth="700px" dialogTitle="Pick this field value!!!">
<xc:this.viewColumn>
<xp:value>0</xp:value>
<xp:value>1</xp:value>
<xp:value>2</xp:value>
</xc:this.viewColumn>
</xc:viewpicklist>

2番目のCCのコード:-

<xc:BOM_Partinfo BOM_Partinfo="#{document1}"
                               TNUM="field#{index+1}" Desc="Desc#{index+1}" quan="Ea#{index+1}"
                               exp="exp#{index+1}" cap="cap#{index+1}" total="price#{index+1}"
                               RD="RD#{index+1}" m="manufact#{index+1}"
                               m_n="manufactnum#{index+1}">
                       </xc:BOM_Partinfo>
4

3 に答える 3

1

複合データパラメータを使用して、ドキュメントデータソースをカスタムコントロールに送信することはできません。

代わりにこのスクリプトを試して使用することができます http://openntf.org/XSnippets.nsf/snippet.xsp?id=access-datasources-of-custom-controls

于 2012-10-30T12:00:28.540 に答える
1

呼び出し元のページで静的であった場合は、カスタムコントロールのプロパティに設定されている情報を読み取ることができます。

var x = getComponent("yourcomponentid");
x.getPropertyMap().get("parametername");

しかし、外部コントロールから内部コントロールにデータソースを伝播したい...

慎重に計画する必要があります。データソースを引き渡す場合、カスタムコントロールは、データソース内の固定されたフィールドのセットに依存します(これは、com.ibm.xsp.model.DocumentDataSourceタイプのパラメーターになります)。これはカプセル化の原則に違反します。したがって、実際にデータバインディングを渡すことをお勧めします-利点:バインドする対象が非常に柔軟です(データソースだけでなく、Beanとスコープ変数も機能します)。トリックは、静的に入力するのと同じようにバインディング名を指定することです(例:「document1.subject」または「requestScope.bla」)。あなたのコントロールであなたはそれからします

${"#{compositeData.field1}"} 
${"#{compositeData.field2}"} 

フィールドごとに1つ必要です。

于 2012-10-30T14:51:11.080 に答える
1

それらのCCが必要なXP/CCでデータソースを定義します。両方のCCのパラメーター「dataSourceName」を定義します。それぞれの内部で、データソースにバインドするすべての場所でEL "requestScope[compositeData.dataSourceName].fieldName"を使用します。

于 2012-10-30T17:40:51.863 に答える