2007年12月10日 (月)

新規フォーム(NewForm.aspx) や編集フォーム(EditForm.aspx) でタイトル列を非表示にするには

(※ 2008.2.12 以前紹介していた手順ではユーザー定義のリストフォーム挿入に関するバグを顕在化させてしまっておりました為、訂正しました。)

MOSSでは "タイトル" 列はシステム列です。通常、新規にアイテムを追加したり、プロパティを編集する際に、タイトル列が必ず表示されブラウザ上の設定ではどうしても非表示にできません。とはいえ、タイトル列は利用しないので、画面上で非表示にしたいというニーズもよく耳にします。

実はタイトル列は SharePoint Designer 2007 を使ってやれば非表示にできます! 今回は 新規フォーム (NewForm.aspx) を例に方法をご紹介します。なお、手順を試す場合は、検証用にあらかじめ任意のカスタムリストを作成しておいてください。

  1. SharePoint Designer 2007 を起動します。
  2. [ファイル]メニューを開き、[サイトを開く] をクリックし、アクセスしたいサイトのURLを指定しサイトを開きます。
  3. あらかじめ検証用に用意したリストを展開し、NewForm.aspx を右クリックし「既存のページから新規作成」をクリックします。
  4. NewForm2.aspx という名前でNewForm.aspx と同じ場所に保存します。
  5. デザインビューでページ内の<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> の開始タグから終了タグまでの部分を選択し、右側に表示される矢印(>) をクリックし、「コモンContent タスク」から「マスタの既定コンテンツ」をクリックします。
  6. 「マスタ ページ コンテンツを既定として設定すると、この領域のすべての内容がページから削除されます。続行してもよろしいですか?」というダイアログが表示されたら[はい]をクリックします。
  7. 再び、<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> の部分にカーソルを挿入した状態で右側に表示される矢印(>)をクリックし「コモン Content タスク」から「カスタム コンテンツの作成」をクリックします。
  8. [挿入] メニューをクリックし、[SharePoint コントロール] - [ユーザー定義のリストフォーム] をクリックします。
  9. 「フォームに使用するリスト/ドキュメントライブラリ」ドロップダウンメニューから目的のものを選択し、作成するフォームの種類で「アイテム作成」を選択します。
  10. [OK] をクリックします。これで ユーザー定義リストフォームが挿入されます。
  11. タイトル列を削除します。
  12. 上書き保存します。
  13. [フォルダ一覧]からリストを右クリックし[プロパティ]をクリックします。
  14. リストのプロパティの[関連ファイル]タブから"新しいアイテムのフォーム" をNewForm2.aspx に変更します。

この方法では、非表示にしたい任意の列を削除したり、並び替えも可能です。


参考: http://blah.winsmarts.com/2007-5-Customize_the_-and-quot;NewFormaspx-and-quot;_page_for_a_SharePoint_List.aspx

**********************************
2008.2.12 バグ情報の追記

直接、NewForm.aspx などのファイルを編集してしまうと、アイテムの新規作成ができなかったり既存のアイテムのリンクをクリックするとエラーが表示されるなどの不具合が生じるようです。 下記、サポート技術文書(KB) にも上がっていましたのでご参考まで。
http://support.microsoft.com/kb/935504/en-us


トラックバック

このページのトラックバックURL: http://bb.lekumo.jp/t/trackback/718613/34255806

新規フォーム(NewForm.aspx) や編集フォーム(EditForm.aspx) でタイトル列を非表示にするにはを参照しているブログ:

コメント

いつも有用な情報ありがとうございます。
参考にさせていただいています。
本BlogでMOSSの可能性がかなり広がりそうに感じています。

本記事の内容を実際に試してみて気づいた点があり、コメントさせていただきます。

作成したリストをテンプレート化してリストを複製してみたのですが、複製したリストで「新規」を作成すると、元のリストのNewForm2.aspxにアクセスしてしまい、結果として
元のリストにアイテムが登録されるという動きになってしまいます。

SharePointDesignerで確認したところ、
複製したリストにNewForm2.aspxは存在するのですが、
リストのプロパティの「関連ファイル」ではオリジナルのNewForm2.aspxを参照する設定になっていました。

この現象を回避する方法などあればご教示いただけると大変助かります。
何卒よろしくお願い申し上げます。

kawabataさん、コメントをいただきありがとうございます。なかなかブログが更新できずにおりましてお返事が大変遅れました。もうお役に立てない可能性は高いのですが、念のためお返事致します。

御指摘を受けて試してみたのですが、NewForm.aspxなどの既定のフォームの参照を変更すると、テンプレート化した際に変更した際に古い情報をずっと持ち続けてしまいますね。

そのため、上記に記載しているKBの情報も踏まえ、次の方法に変更してみましたところテンプレート化もうまくいきました。

1. NewForm.aspx は念のためバックアップ用にコピーを作成しておく。
2.NewForm.aspxを直接編集して、既存のListFormWebPartを右クリックして[Webパーツのプロパティ]を選択し、プロパティ設定内のレイアウトセクションにある"非表示"設定をする。
3.ListFormWebPartの含まれるTABLEタグの後に[ユーザー設定リストフォーム]を挿入し、タイトル列表示を非表示にする。

以上、よろしくお願いいたします。

山崎さん
ご回答ありがとうございます。
なるほど、既存のListFormWebPartを削除しなければよかったのですね!納得です。
(KBを読めばわかる話でしたね。すみません。。)

できそうで、できなさそうで、やっぱりできる(事もある)のが
MOSSの醍醐味ですね~。

大変助かりました。ありがとうございました!
新しい書籍も楽しみにしてます。

kawabataさん、お役に立ててよかったです。今後ともよろしくお願いいたしますhappy01

いつも拝見させて頂いております。
いくつかサイトを見回り情報を探したのですが、「リストのプロパティ」に触れているのがこちらしか無かったのでちょっと的外れかもしれまんせが質問させて頂きます。

リストのプロパティの関連ファイルの設定部分でコンテンツタイプ毎に「アイテムを表示するフォーム」を設定したいのですが、何回設定しても元に戻ってしまいます。
これはバグでしょうか?

例えばコンテンツタイプが
・Item
・Item2
と存在していて

それぞれのDispFormを
Item → DispForm1.aspx
Item2 → DispForm2.aspx
としたいのですが、

何度設定し直しても
Item → DispForm1.aspx
Item2 → DispForm1.aspx
となってしまうのです。

ご存知であればご教授願います。

wataruさん、コメントをいただいていましたが、なかなかお返事できずすみませんでした。こちらの問題は解決しましたでしょうか?

念のため手元の環境で試したところ、既定のコンテンツタイプ(例.アイテム)の順序が1のままだとうまく動かず、カスタムコンテンツタイプの順序(たとえば、Item1)を1に変更してやるとうまく動作しているようです。なお、利用している環境はSP2適用環境で試しました。

はじめまして、いつも拝見しております。

本投稿について質問させていただきたいのですが、
記載されている方法でNewItemなどのフォームをカスタマイズすることには成功しているのですが、
ファイルを添付することだけができません。

ファイル添付ボタンは表示できているのでクリックするのですが、
This form was customized not working with attachment.
と表示された警告ウィンドウが表示されてしまいます。

スペルチェックは通常通り作動します。

通常通り添付できない原因として、
何か思い当たるものがあればご教授願えませんでしょうか。

何卒よろしくお願いいたします。

度々失礼いたします。

先日起票させていただいた質問ですが、
MSからの修正プログラムが配布されているのを発見いたしまして、
無事解決することができました。

ありがとうございました。

http://support.microsoft.com/kb/960311

海野さん、お世話になっております。

コメントが遅くなりまして申し訳ありません。

ご指摘の通り、添付ファイル機能に不具合がでるのはマイクロソフト社の既知の問題で、対応方法が公開されているようですね。

お知らせいただいたサポート技術文書のHotFixを適用するか、もしくはHotFixの適用が難しい場合は、以下のサポート技術文書にある通り、手動でXSLTを変更する必要があります。http://support.microsoft.com/kb/953271/ja

以前担当した客様環境ではどうしてもHotFixの適用ができない状況であったため、後者の方法でサイトを構築した経験があります。その辺のことをブログにUPDATEしようと思っていたのですが、業務の方に時間をとられてなかなか最近更新できずにおりました。ちょうどご指摘いただいて助かりました。

これに懲りず、今後ともよろしくお願いいたします。

山崎さん

とても丁寧な解答をありがとうございます。
予想以上に早い反応を頂き驚きました。
こちらこそ、今後ともよろしくお願いいたします。