SharePoint 2007リストのnewform.aspxをカスタマイズしますか?
-
16-10-2019 - |
質問
SharePoint 2007リストがあり、6つのサイト列があり、newform.aspxページの2つのモードが必要です。ユーザーがnewITEMをクリックすると、3つのサイト列のみを表示する必要があり、アドバンストモードへのリンクが必要です。ユーザーが高度なモードリンクをクリックすると、これらすべての6つのサイト列をすべて表示し、対応する列値をすべてユーザーの場合は事前に入力する必要があります。すでに単純なモードでいくつかの情報を入力しています。ユーザーは、Advancedモードから簡単なモードに移動できるはずです。
また、ラベルに現在のユーザー名を表示したいのですが、newform.aspxページにあります
どのように達成できますか? Doweは何らかのJavaScriptを書く必要がありますか?
解決
これをかなり簡単に使用できます sputility.js (完全な開示これは私が維持するライブラリです)。おそらく、newform.aspxのコンテンツエディターWebパーツ内にすべてを配置するでしょう。
フィールドの表示/隠しを切り替える「Advanced Mode」リンクがあります。 sputility.jsを使用した例:
SPUtility.GetSPField('Field A').Hide(); // or Show() after they click the link
SPUtility.GetSPField('Field B').Hide();
SPUtility.GetSPField('Field C').Hide();
あなたがこのルートに行くことを選択した場合、私が残りを手伝うことができるかどうか教えてください。
他のヒント
JavaScriptは、ページに動的な動作を追加したい場合に行く方法のようですが、どうやらサーバーからの追加情報は必要ありません。
あなたのコードは次のことをしなければなりません:
- 非表示にする必要がある3行を特定します
- それらを見えないようにします(表示:なしまたは可視性:非表示)
- クリック時の可視性を切り替えます
JavaScriptでは、現在のユーザー名(表示名またはより良いユーザーアカウント)を取得することもできます。
これを行う別の方法は、編集を使用して「高度なフォーム」として機能することです(ユーザーがリスト項目を編集しているときに6つのフィールドをすべて表示したいと仮定します)。次に、ユーザーが「OK」をクリックすると、単純なリダイレクトにより、入力した値を保存して編集/高度なフォームに移動します。
リダイレクトの場合、明らかな質問は、アイテムのIDなしでアイテムの編集フォームにリダイレクトするにはどうすればよいですか? (IDは、リスト項目が保存されるまで作成されません)。 Marc D AndersonのSpservicesライブラリをお試しください - http://spservices.codeplex.com/. 。 Marcは、この問題に特に対処する機能を作成しました - > $()。spservices.spredirectwithid。
MarcのSPServicesライブラリを使用して、$()。Spservices.spgetCurrentuserユーティリティを使用して現在のユーザー名(およびその他)を表示することもできます。