0

SharePointでカスタムフィールドタイプを作成しようとしています。

このコントロールには、同じリスト内の別のフィールドに基づいて設定された値があります。この要件のため、このフィールドは表示モードでのみ表示され、編集モードまたは作成モードでは表示されません。

これを確認するにはどうすればよいですか?

フィールドをレンダリングしないようにASCXコントロールをコーディングした場合、フィールドは編集および作成モードで次のように表示されます。

代替テキストhttp://www.mannsoftware.com/blog/Lists/Photos/121308_0204_CrossSiteLo6.png

4

5 に答える 5

1

通常、SPField.ReadOnlyFieldプロパティをTrueに設定して、任意のフィールドで目的の動作を実現します。(それに応じてSPField.Updateを忘れないでください!)リスト定義には同等のCAML属性があると思います。

とはいえ、BaseFieldControlから派生したコントロールクラスでは、RenderFieldForInput()メソッドをオーバーライドするだけで、基本実装を呼び出さずに、作成中または編集中に何もレンダリングされないようにすることができます。ただし、これでもフィールドのテーブル行がフォームにレンダリングされますが、これはおそらく希望どおりではありません。したがって、目的の動作を強制するには、ReadOnlyFieldを使用し、SPField(フィールドコントロールではない)クラスでUpdate()をオーバーライドして、常にTrueに設定します。

于 2009-05-19T11:30:31.087 に答える
0

このブログ投稿をご覧ください。それはあなたにいくつかのアイデアを与えると思います。コンセプトは、モードに基づいて異なるレンダリングテンプレートを使用します。

http://sharepoint.nailhead.net/2008/04/creating-rendering-template-that.html

于 2009-05-19T17:45:08.363 に答える
0

ShowInEditForm および ShowInNewForm プロパティを設定すると、これが解決されました。

于 2011-07-05T20:08:34.263 に答える
0

フィールドを非表示に設定しようとしましたか? http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfield.hidden.aspx

新しいアイテムと編集アイテム (NewForm.aspx と EditForm.aspx) のカスタム FORMS ページは、これを実現する別の方法です。

于 2009-05-19T21:04:07.760 に答える