2013-05-01 51 views
1

我在博客中找到了許多建議的方法,希望能夠回答如何執行此操作並且沒有成功完成任何他們使用SharePoint MOSS 2007和SharePoint Designer 2007.基於當前用戶在SharePoint組中的成員身份隱藏NewForm.aspx和EditForm.aspx上的字段(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)。

  1. 我將這兩個文件上傳到我的網站上的文檔庫。

  2. 我然後創建了NewForm.aspx頁上的CEWP(不通過設計師,但通過附加前端「共享& ToolPaneView = 2」的URL。

  3. 粘貼以下代碼的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部件菜單上單擊確定,並關閉Web部件。獲取相同的等待消息...

目標是,如果當前用戶不是MyGroupName的一部分,那麼MyColumnName字段將不會在頁面上可見。不是開發者,而是嘗試在現實生活中扮演一個角色。

如果你還在讀,謝謝!

回答

0

您提供的腳本不起作用。只是檢查,你包括一個<script />聲明jQuery以及SPServices?瀏覽器是否顯示頁面加載期間發生的任何腳本錯誤?我偶爾會得到一個404,因爲我沒有正確引用腳本文件。

此外,如果您的xml.search('MyGroupName')成功,您聲明一個新函數。我懷疑你想調用這個函數,而不是僅僅聲明它。不過,jQuery爲您嘗試執行的操作類型提供了一些有用的簡寫。例如,如果「MyColumnName」是你可以做這樣的事情列的ID:

<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) { 
     $("#MyColumnName").parent().parent().hide(); 
     } 
    } 
    }); 
}); 
</script> 

如果「MyColumnName」是不是你想發現有其他方法來匹配元素的id你想隱藏的元素。看看jQuery.com,特別是jQuery selectors替代品。

相關問題