質問

私は、登録するためのトレーニングとコースを追加するために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で書き直しているでしょう。

  1. データソースからフィールドをドラッグアンドドロップして、デザイナーにフィールド名を把握できるようにしてください。

また

  1. 別のページに「カスタム編集フォーム」を追加してから、fielddescriptionをコピーしてみてください。

私はあなたのニーズを読んだことがないか、よく把握していないかもしれません。コンテンツタイプを実装してみませんか?カスタムフィールド(別名列)の機能を持つことができ、編集フォームでdiplayのような属性を設定することができます= true、show onvee = true(etc.など)

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top