0

ビューをデータソースとして使用し、リピート内にカスタム コントロールを含むリピート コントロールがあります。カスタム コントロールは、2 つのテーブルを含むパネルで構成されています。一方のテーブルには [編集] ボタンのある計算フィールドがあり、もう一方のテーブルには [保存] ボタンと [キャンセル] ボタンのある編集可能なフィールドがあります。[編集] ボタンと [キャンセル] ボタンは必要に応じて機能しますが、[保存] ボタンを押すと NotesDocument.save() is null エラーが発生します。以前のすべての行をコメントアウトすることで、問題を edoc.save() 行で発生しているエラーに絞り込みました。edoc.lock() を実行しようとしましたが、同じエラーが発生しました。

var edoc:NotesDocument = database.getDocumentByUNID(viewScope.get('docid'));
edoc.replaceItemValue('Ext_1',viewScope.get('ext_1'));
edoc.replaceItemValue('DID',viewScope.get('did'));
edoc.replaceItemValue('Mobile',viewScope.get('mobile'));
try {
edoc.save();
} catch(e) {
print(e.toString());
}
4

1 に答える 1

1

viewScope と繰り返しコントロールでの DocID の格納は正しくないようです。DocID という名前のカスタム コントロールにカスタム プロパティを追加し、代わりに

    database.getDocumentByUNID(viewScope.get("docid"));

あなたがやる:

    database.getDocumentByUNID(compositeData.DocID);

これにより、その行のそのビューにあったドキュメントを確実に取得できます。また、すべての手動の​​手順 (コメントアウトしたもの) の代わりに、DocumentDataSource を含むパネルを用意し、入力フィールドをそのパネルにバインドするだけでよいと考えることもできます。カスタム プロパティと "IgnoreRequestParameter = true

次に、rowDoc.save() を実行するだけで (データソースに rowDoc という名前を付けたと仮定します)、何もリサイクルする必要はありません。それがどうなるか教えてください。

于 2013-05-17T16:05:42.777 に答える