0

CSV ファイルをインポートするコードを少し見つけました。ファイル アップロード コントロールを使用して、ファイルへのハンドルを取得します。通常の xPage で使用するだけでうまく機能します。

しかし、拡張ページのダイアログ ボックス内で使用したいのですが、機能しません。問題の原因となっている行はこの行ですか?

var fileData:com.ibm.xsp.http.UploadedFile =   facesContext.getExternalContext().getRequest().getParameterMap().get(getClientId('fileUpload1'));

常に null を返します。実際に、fileIpload1 という名前のダイアログ ボックスにコントロールがあります。

クライアント ID に見られる違いは、ストレート xPage ではクライアント ID が view:_id1:_id19:fileUpload1 であり、ダイアログ ボックスを使用する場合のクライアント ID が view:_id1:_id193:_id194:_id195: であることです。 dlg_ImportParticipants:_content:form1:_id373:fileUpload1

何かまたは回避策がある場合、私が間違っていることは何ですか?

4

2 に答える 2

3

次の質問への回答が役立ちます: Ext lib ダイアログとファイル アップロード コントロール

つまり、回避策を使用する必要があります。

私はそれを使用しているため、さらにヘルプが必要な場合は、動作するコードを利用できます。

于 2013-01-07T21:53:38.360 に答える
0

そのリンクをありがとう。今の私にはちょっとコンプレックスなのかもしれません。私は自分の解決策を思いつきました(一種の)。私がやっていることは、メインの xpage にファイル アップロード コントロールを備えたパネルを配置することです。私のボタンはパネルを再表示します。私のインポートボタンはコードをインポートしますが、再び非表示にします。私がまだ抱えている問題は、インポートの実行後に xpage の「埋め込み」ビューを更新していることです。

ところで、CSS 表示プロパティを使用してパネルを非表示/非表示にしています。

これは、投稿したリンクほどエレガントではありませんが、はるかにシンプルです。

于 2013-01-08T18:49:27.353 に答える