FC2ブログ

2018-11

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

列を非表示にする

おっと。気がついたら更新に間が……。

文を書くって難しいですね^^;
なかなか、上手くまとまりません。

最低週に1回は更新するのを目標に頑張ります(><)



今回のネタはリストのフォームについて。

新規フォーム(NewForm.aspx)、編集フォーム(EditForm.aspx)、表示フォーム(DispForm.aspx)で列を非表示にする方法です。

全てのフォームで非表示にするわけではありません。(することもできます)


新規登録時にのみ値を入れて、以後は編集不可にしたい
ワークフローなどで値をセットし、表示だけしたい

と言う事ってありませんか?


SharePointDesignerでユーザー設定のリストフォームを作成すれば可能ですが、出来ればこれは使いたくない。

理由は、列の追加などに自動で対応してくれないから^^;
せっかく標準フォームはリストの設定に勝手に対応してくれるのに、これをわざわざ変えてしまうのは嬉しくない。

あ、あとバグなんかもあるみたいですし。


と言うわけで、VisualStudioを使用したカスタマイズでこんな事ができます。

方法は「続きを読む」で。


変更するのはSPFieldクラスの以下のプロパティ。

ShowInDisplayForm :表示フォームにフィールドが表示されるかどうか
ShowInEditForm : 編集フォームにフィールドが表示されるかどうか
ShowInNewForm : 新規フォームにフィールドが表示されるかどうか


何でリストの設定ページで変更できないんだってくらい、便利なプロパティです。

普通に列を作成すると、これらのプロパティにはtrueが設定されていますので、これをfalseに変更してやるだけでOKです。
(正確には何も設定されていないので、デフォルト値のtrueになっている)

他にも以下のような便利なプロパティもあります。

NoCrawl :クロールされるかどうか
Hidden :非表示列

その他のプロパティはこちらを参照。


これらを変更するWEBパーツやカスタムアクションを作成して、簡単に値を変更できるようにしておくととても便利です。


簡単にソースの例を。


SPWeb MyWeb = SPContext.Current.Web;

SPList CurrentList = SPContext.Current.List;
SPField TargetField = CurrentList.Fields["列名"];

MyWeb.AllowUnsafeUpdates = true; //①

TargetField.ShowInDisplayForm = true; //表示フォームに表示
TargetField.ShowInEditForm = false; //編集フォームに非表示
TargetField.ShowInNewForm = false; //新規フォームに非表示

TargetField.Update();

MyWeb.AllowUnsafeUpdates = false; //①



列のプロパティの変更部分だけを書くとこんな感じです。
(直接描いたのでスペルミスがあったらスミマセン…)

リストから列を取得し、プロパティをセットし、Update、です。
Updateするのはリストではなく列をUpdateします。

①の意味に関してはココで書くとややこしくなりそうなので次回に持ち越し。



ちなみに、これはあくまでフォームで列を非表示にしているだけで、列自体の編集を不可にしているわけではありません。
なのでデータシートビューなどを使用すると編集可能なのでご注意を。

スポンサーサイト

● COMMENT FORM ●


管理者にだけ表示を許可する

トラックバック

http://sharepointyuzuki.blog54.fc2.com/tb.php/8-1140324a
この記事にトラックバックする(FC2ブログユーザー)

このページのセキュリティの検証は正しくありません «  | BLOG TOP |  » チェックアウト済みファイルの管理

プロフィール

柚木

Author:柚木
コメント・トラックバックなどお気軽にどうぞ(^^)

連絡先:yuzuki-sharepoint★mail.goo.ne.jp(★を@に変換)

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

リスト・ライブラリ (9)
検索関連 (3)
管理設定 (0)
開発 (14)
その他 (1)
未分類 (0)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。