editform.aspx で一部のフィールドを非表示にしたり、読み取り専用にしたりしたいと考えています。このページの例に従いましたが、「元の」Web パーツ リストを削除しませんでした。元の Web パーツを非表示にして、元のリストから新しいカスタム リストを作成しました。次に、カスタムリストにxslを適用して、フィールドを非表示または「読み取り専用」にすることができました。残念ながら、定期的なイベントが機能しなくなったか、完全に台無しになりました。カレンダー ビューで特定のイベントをクリックすると、エラー メッセージが表示されることがあります。カレンダー リストは正常に機能し、イベントが繰り返されていない場合、フィールドは「編集モード」で非表示または無効になります。私の質問はです。カレンダー リストの特定のセキュリティ グループまたは共有ポイント グループのアイテムを非表示または無効にする他の方法はありますか?
6 に答える
SharePoint Designer がオプションの場合は、Laura Rogers のこのブログ投稿で、アクセス許可レベルごとに SharePoint フィールドを表示する方法を示しています。カレンダーリストで動作するはずです。
これにより、サードパーティ製品を必要とせずに、ソリューションを完全に制御できます。
JQuery を使用して、カレンダー リストの項目を非表示にすることができます。次の手順に従ってください: - [予定表] タブの [リストのカスタマイズ] カテゴリから、[フォーム Web パーツ] -> [既定の新しいフォーム] を選択します - [挿入] タブを選択し、[Web パーツ] カテゴリから [Web パーツ] をクリックします。- [メディアとコンテンツ] を選択し、[コンテンツ エディター] を選択して [追加] をクリックします。- コンテンツ エディターをフォームの下に配置し、コンテンツ エディター内をクリックします - [テキストの書式設定] タブをクリックします -> マークアップ カテゴリをクリックします -> HTML をクリックします -> HTML ソースの編集 次のコードを追加します。
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(function() {
$("td.ms-dttimeinput").hide();
$("span[title='All Day Event'] > input").attr("checked","checked");
$("tr:has(span[title='Recurrence'])").not("tr:has(tr)").hide();
$("tr:has(span[title='All Day Event'])").not("tr:has(tr)").hide();
$("tr:has(span[title='Workspace'])").not("tr:has(tr)").hide();
});
</script>
上記のコードでは、「終日イベント」も true にチェックされます。これが役に立つことを願っています..
それをするのは少し難しいと思います。それ以外の場合は、 SharePoint Column View Permissionのようなサード パーティ ツールはそれほど多くないはずですが、Bamboo にもそのようなツールがあります。
コードstackoverflow.com/questions/1058232で実現したい場合は、これを見てください。しかし、カレンダーで機能するかどうかはわかりません。
あなたが探していることをするために私が遭遇した2つのツール:
- SPListDisplaySetting - 「SharePoint 機能 (WSS 3.0 および MOSS 用) は、新規、表示、および編集モードでリスト フォームのレンダリングをカスタマイズするための高度な設定を提供します。」
特定のフィールドを編集ページ、新規ページ、または表示ページにのみ表示し、特定のグループに対してのみ表示するように指定したり、それらを完全に非表示にしたりすることができます。
これに関する私の唯一の問題は、インストーラーがうまく機能しないことです。ただし、ユーザーがディスカッション ボードに作業手順を投稿しました。
- SharePoint ツール バスケット - リスト列マネージャー- 「この機能により、サイト コレクションの管理者は、非表示/読み取り専用の列を含むリストのすべての列を表示し、内部名、Guid、タイプなどの列の詳細を表示できます。」
Cleverworkaroundsでかなり良い解決策を見つけました。コードは JavaScript で記述されているため、スクリプトは実際にはフィールドを削除しませんが、これは私の場合は必要ですが、フィールドを非表示にします。私は、顧客が持っていて、一部のユーザーのために削除したい機密データがあるため、SharePoint リスト フォーム拡張機能に固執する必要があります。Laura Rogers のソリューションも優れていますが、Cleverworkarounds を使用すると、Sharepoint Designer を使用する必要がなくなります。
1 つのオプションは、Sharepoint Manager を CodePlex からダウンロードすることです。サーバーにインストールすると(オブジェクトモデルを使用します)、特定の列が完全に隠されているかどうか(リストからでも)、フィールドごと、リストごとに、ヒープ全体に簡単にアクセスできます設定)、または表示フォーム、編集フォーム、またはその両方から非表示にします。true/false ドロップダウンを設定して [保存] をクリックするだけです。列を読み取り専用にするオプションもあります。
ただし、権限に関しては、すべてかゼロかです。選択したものは、その領域にアクセスできるすべての人に適用されます。