0

アプリケーションで WSS 3.0 を使用しています。リストを DataView Webpart として表示しています。ここでの私の目的は、この Web パーツを選択した個人グループに表示できるようにすることです。WSS 3.0 には対象ユーザーのオプションがないため、リストのアクセス許可を編集し、選択したユーザーにのみ読み取りアクセス許可を付与しました。これにより、ページから Web パーツが非表示になるのではなく、アクセスが拒否されましたというメッセージが他のユーザーに表示されます。

アクセス拒否。このアクションを実行する権限、またはこのリソースにアクセスする権限がありません。

私が言ったように、私はこの Web パーツを非表示にしたいと考えています。これは、表示する権限を持たない他のユーザーから Web ページ上で見えないようにするためです。このメッセージはアクセス許可を持っていないユーザーにのみ表示されるため、私のアプローチは、html で上記のメッセージを検索し、親ノードを特定して非表示にすることで、Web パーツを非表示にすることです。

これを行う方法がよくわかりません。何か案は?前もって感謝します!

4

2 に答える 2

0

ここでは、JavaScript を DataView Web パーツに直接追加するのではなく、ページに Web パーツを追加できる状況にあると仮定します。デザイナーがこのリストの別のビューを追加した場合、私の提案は別のページでは機能しません。

空白の .js ファイルをサイト アセットにアップロードします。コンテンツ エディター Web パーツをページに追加し、そのファイルをポイントします。プロバイダーから JQuery を追加するまたは、自分でホストして、ファイルに参照を追加します。そこから作業を進めるには 3 つの方向性があります。まず、Internet Explorer の F12 開発者ツールを使用して Web パーツを探索し、適切な一意の ID、名前、またはクラスを含む div とテーブルに特に注意を払います。これにより、非表示にすると問題が解決されます。また、div、テーブル、セル、またはアクセスが拒否されたテキストを含むものの ID にも注意してください。次に、(JQuery を初めて使用する場合) JQuery のチュートリアルをいくつか行ってから、上記の項目を選択して、たとえば背景色を変更してみてください。これらの両方を取得したら、90% 完了です: アクセス拒否テキストを含むオブジェクトを (試行して) 選択し、innerHTML が存在し、その文字列と等しい場合は、div またはテーブルに display:none を設定します。 Web パーツを非表示にします。

申し訳ありませんが、私はそれをテストする立場にないため、特定のコードを提供することはできません. それが変更された場合は、より詳細な応答を試みます。

古い、誤った回答:ここでの回答のいずれかがあなたのために働いていますか? または、この回答には、問題を解決するための優れたリソースがいくつかあります。メッセージを空の文字列に変更するだけです。

于 2013-10-15T19:01:44.773 に答える
0

ありがとうアロン:D

WebパーツのIDを見つけてハードコードしました。それは解決策を提供しましたが、非表示にする必要がある Web パーツが複数あるため、innerhtml を検索してプログラムで ID を取得することを望んでいました。

ここで部分的な解決策を見つけました: Javascript onclick メソッドを使用して SharePoint Web パーツを非表示にする

ページに CEWP を配置し、次のスクリプトを追加しました。

<script>
function hide()
{
    var content = document.getElementById("webpartID").innerHTML;
    var n = content.search("Access denied. You do not have permission to perform this action or access this resource");
    if(n!=-1)
    {       document.getElementById("webpartID").style.display="none";
    }
}
_spbodyonloadfunctionnames.push("hide");
</script>

私の場合、aspx ページから Web パーツ ID を取得するか、ページのソースを表示しました。

于 2013-10-17T01:55:51.407 に答える