これを行う方法の答えを探しているブログでいくつかの推奨される方法を見つけましたが、SharePoint MOSS 2007 と SharePoint Designer 2007 を使用してそれらをうまく機能させることができませんでした.
サイト コンテンツ タイプ内でユーザーに見せたくないフィールド (これらのフィールドは SharePoint Designer ワークフローによって設定されています) を既に非表示にしています。
現在のユーザーが特定の SharePoint グループに属しているかどうかに基づいて、NewForm.aspx および EditForm.aspx の特定のフィールドを非表示にしようとしています。リストには、作成したサイト コンテンツ タイプとサイト列があります。
Designer で NewForm.aspx を見ると、デザイン ビューには、特定のコンテンツ タイプではなく、一般的なフィールド 1、2、3 が表示されます。新しい aspx ページを作成し、SharePoint コントロール > カスタム リスト フォームを挿入すると、フィールドが表示されます。デザイナーがあれば、デザイナーで編集する方法をとりますが、以下の解決策を確認して、私がどこを台無しにしているかを理解するのを手伝ってくれる人が必要です.
jquery (1.9.0.js) と SPServices (0.7.2.min.js) を使用することを示すオプションを使用しました。
両方のファイルを自分のサイトのドキュメント ライブラリにアップロードしました。
次に、NewForm.aspx ページに CEWP を作成しました (デザイナーではなく、URL に "shared&ToolPaneView=2" を追加してフロントエンドを使用)。
次のコードを CEWP に貼り付けます。
"
<script type="text/javascript" language="javascript" src="/Style%20Library/JavaScript%20Utilities/jquery.SPServices-0.7.2.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$().SPServices({
operation: "GetGroupCollectionFromUser",
userLoginName: $().SPServices.SPGetCurrentUser(),
async: false,
completefunc: function (xData, Status) {
var xml = xData.responseXML.xml;
if (xml.search('MyGroupName') != -1)
function hidefields() {
var control = findacontrol("MyColumnName");
control.parentnode.parentnode.style.display="none";
}
}
});
});
</script>
[ソース エディタ] ダイアログ ボックスで [保存] をクリックすると、ダイアログ ボックスが閉じて、メイン ブラウザのステータスに「スクリプトが読み込まれるまでお待ちください...」というメッセージが表示された後、何も起こりません。[共有 Web の変更] で [OK] をクリックできます。パーツ メニューと Web パーツが閉じます。同じ待機メッセージを取得します...
目標は、現在のユーザーが MyGroupName の一部でない場合、MyColumnName のフィールドがページに表示されないようにすることです。開発者ではありませんが、実生活でプレイしようとしています。
まだ読んでいるなら、ありがとう!!!