カスタムリスト定義(ドキュメントライブラリ)を使用して、新しい/編集フォームにフィールドを追加する
-
16-10-2019 - |
質問
Visual Studio 2010のテンプレート「リスト定義」を使用して、ドキュメントライブラリの新しいリスト定義を作成しています。
まったく派手なものは何もありません - リストとデフォルトビューにいくつかのフィールドを追加するだけです。にフィールドを追加します <Fields>
の schema.xml
そしてそれぞれ <FieldRef>
に <Views>
問題ないので、カスタムフィールドにリストがあります。
新しい/編集フォームにそれらを表示することはできません。私は思った ShowInDisplayForm="TRUE"
と ShowInNewForm="TRUE"
行く方法でしたが、それは何もしていないようです - そして、私は新しいリスト定義テンプレートがそれを追加していることを理解しました」Upload.aspx, FileDlg.htm, EditDlg.htm
".
私は置いてみました <ows:ListProperty Select="MyColumn">
editdlg.htmで。変化なし。今、私はvs2010が多くのコードを置いていることを見ました schema.xml
下 <Form Type="NewFormDialog" Path="EditDlg.htm">
それは始まります <ListFormOpening>
.
私の質問:VSテンプレートを使用して、関連するすべてのダイアログ(編集/新しい/ビュー)にカスタムフィールドを追加する方法は?
編集:削除してこれを解決する方法を見つけました
<ContentTypes>
からの参照 Schema.xml
ここで説明するように. 。ライブラリからコンテンツタイプを削除したので、これがこれを行う正しい方法であるかどうかはまだわかりません(それでも、文書を正常に追加できます...)。説明誰か?
解決
「問題」は、すべてのリストとライブラリがコンテンツタイプにバインドされていることです。残念ながら、Microsoftは、デフォルトで「コンテンツタイプ管理を許可する」を無効にすることでそれをハイドしました。行ったように新しいフィールドを作成すると、リストに追加されますが、リストが依存するコンテンツタイプにバインドされていません。リスト設定に移動してコンテンツタイプ管理を有効にすると、新しい「リストフィールド」をコンテンツタイプに追加すると、表示されます。
リストテンプレートにフィールドを追加するための最良のアプローチは、独自のフィールドを作成し、コンテンツタイプに追加することです。次に、このコンテンツタイプに基づいてリストテンプレートを作成し(VSで簡単)、このコンテンツタイプをリストに追加します。
他のヒント
ContentTypesリファレンスを削除することは、必ずしも正しい方法ではありませんが、間違った方法であると確信しています。彼らは理由でそこにいます。
2つのオプションがあります。まず、コンテンツタイプを作成し、そのようにフィールドを指定できます。見る http://msdn.microsoft.com/en-us/library/ff728096.aspx コンテンツタイプを介してカスタムリストを構築する方法については。
次に、カスタムリストタイプを使用して、独自のフィールドを追加できます。
Visual Studioを介してSoluitonに空白リスト定義を追加した後、必要なフィールドを追加してください
<Fields />
セクション。ID 0x01(アイテム)のContentTyperefを新しい空白のものに置き換えます。サンプルと完全な説明については、このブログ投稿を参照してください。 http://jopx.blogspot.com/2007/05/sharepoint-2007-how-to-create-custom.html