カスタムリストに新しいフィールドを追加する方法(編集を参照!)
-
16-10-2019 - |
質問
私は、登録するためのトレーニングとコースを追加するためにMicrosoftテンプレートを使用しています。すべてが正常に機能していますが、コースリストにフィールドを追加したいと思います。このコースがどのようなスタッフであるかを示すフィールドを追加したいと思います。たとえば、HR、健康と安全、管理者など。
だから私はこれへの答えをすべて検索しました、SharePointのドキュメントは衝撃的であり、私は次のことをしました:
- 設定>コースページで列を作成します。
- 必要なすべての詳細を入力しました
- dispform、editform、newform(.aspx)が追加されました
@fStaffType, Staff Type;
にDataFields
セクション。 (Staff Type
フィールドの名前です」 Dispformにデータを表示する新しい行を追加しました。
<tr> <td width="190px" valign="top" class="ms-formlabel"> <H3 class="ms-standardheader"> <nobr>Staff Type</nobr> </H3> </td> <td width="400px" valign="top" class="ms-formbody"> <xsl:value-of select="@fStaffType"/> </td> </tr>
editformとnewformに、データを編集/入力する新しい行を追加しました。
<tr> <td width="190px" valign="top" class="ms-formlabel"> <H3 class="ms-standardheader"> <nobr>Staff Type</nobr> </H3> </td> <td width="400px" valign="top" class="ms-formbody"> <SharePoint:FormField runat="server" id="ff12{$Pos}" ControlMode="New" FieldName="fStaffType" __designer:bind="{ddwrt:DataBind('i',concat('ff12',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@fStaffType')}"/> <SharePoint:FieldDescription runat="server" id="ff12description{$Pos}" FieldName="fStaffType" ControlMode="New"/> </td> </tr>
編集とnewformでエラーが表示されます。
エラーレンダリングコントロール-FF12Description_1
未処理の例外が発生しました。オブジェクト参照がオブジェクト インスタンスに設定されていません。
説明にコメントすると、最初のものが表示されます td
(フィールド名)しかし2番目 td
ただ空です。
どんな助けも大歓迎です!
編集:関連する問題、新しい質問を作成する必要があるかどうかわからない。しかし、マークDアンダーソンは以下に答えて、新しいフィールドを追加して表示することができました。ただし、新しいコースを完璧に追加できますが、1つを編集してスタッフタイプのフィールドを変更すると、現在の時間と時間に新しいコースが作成されます。ただし、他のフィールドが編集されている場合、正しく編集します。
何か案は?
解決
多くの 「素晴らしい40」テンプレート カスタマイズされたフォームがあります。 (おそらく、この時点で名前の素晴らしい部分について議論します。)
あなたはフォームでほぼ正しいことをしているように見えますが、それがあなたの南に向かっている場所を知るのは少し難しいです。
新しい列を作成したとき、「fstafftype」の名前を付けましたか?そうでない場合、それが問題です。 「スタッフタイプ」という名前を付けた場合、列の内部名(または静的)は「staff_x0020_type」です。 (名前のスペースがエンコードされます。)編集:リスト設定に移動してその列を編集することにより、列の静的名を見つけることができます。 staticNameは、クエリ文字列パラメーターとしてURLの最後になります。使用したキャラクターに応じて、スタッフ%5FX0020%5FTYPEなど、エンコードされたベッドーブルがエンコードされる場合があります。
列displayNameとstaticNameをDiatafieldsセクションに追加する必要はありません。率直に言って、実際には明白な目的を果たしません。 SharePoint:Formfield and SharePoint:FieldDescriptionの列名が、追加した列名の静的名と一致することを確認する必要があります。
エラーの後続の「_1」は、$ POS変数の値を追加することにより、SharePointがその列の各インスタンスにその列の各インスタンスを与える(同じ形式の複数のアイテムへの編集を許可する可能性がある)一意の名前の一部です。
他のヒント
FF12はすでにページのどこかで定義されているように見え、おそらく最後に_1で書き直しているでしょう。
- データソースからフィールドをドラッグアンドドロップして、デザイナーにフィールド名を把握できるようにしてください。
また
- 別のページに「カスタム編集フォーム」を追加してから、fielddescriptionをコピーしてみてください。
私はあなたのニーズを読んだことがないか、よく把握していないかもしれません。コンテンツタイプを実装してみませんか?カスタムフィールド(別名列)の機能を持つことができ、編集フォームでdiplayのような属性を設定することができます= true、show onvee = true(etc.など)