2017-05-08 76 views
1

背景:我開發了一些使用Visual Studio和自定義屬性的SharePoint 2010 Web部件。我也可以用代碼設置這些屬性,以便它們保持不變。我也知道,SharePoint用戶可以個性化自己的屬性值等網頁& Web部件可以將Sharepoint 2010 WebPart屬性配置爲僅限用戶特定?

問:是否有可能建立一個屬性,它永遠只有用戶的具體情況?

換句話說,我希望我的Web部件具有一個空白屬性,並且在用戶在Web部件中執行操作後分配一個值,但該值是特定於該用戶的。其他查看該頁面的用戶需要執行該操作才能獲得自己的價值。我希望在沒有用戶手動個性化頁面的情況下發生這種情況。

我試圖設置屬性:

Personalizable(PersonalizationScope.User) 

後來又增加了

WebPartStorage(Storage.Personal) 

,並做了一些測試,但由第一用戶設置的值始終堅持到第二。

我們沒有做過很多個性化的事情,所以我真的很好奇,如果這甚至是可能的。

回答

1

您應該可以添加屬性[Personalizable(true)]

WebPartStorage特性(與Storage.SharedStorage.Personal)是爲SharePoint 2003年長API緩繳,如記錄here

看看微軟的演練文章在這裏:Creating a Custom Web Part Editor in SharePoint 2010

Web部件聲明一個私有變量_tabListTabData對象的集合。此集合包裝通過TabList屬性。如果_tabList爲空,則該屬性將返回一個空集合。該物業也被標記爲Personalizable,使用戶能夠自定義選項卡。

[...]

// Collection of tabs. 
private List<TabData> _tabList; 
// Property to hold the collection of tabs. 
// Set the Personalizable attribute to true, 
// to allow for personalization of tabs by users. 
[Personalizable(true)] 
public List<TabData> TabList { 
    get 
    { 
     if (this._tabList == null) 
     { 
      // Return an empty collection if null. 
      this._tabList = new List<TabData>(); 
     } 
     return this._tabList; 
    }    
    set 
    { 
     this._tabList = value; 
    } 
} 

更多的閱讀,看看這裏微軟的文檔:About Web Part Page personal and shared views

值得注意的是,考慮下面的摘錄:

當Web部件頁是在個人頁面視圖中, :

  • 通常可以查看和修改佈局外觀常見的Web部件屬性,但不是高級的屬性。在某些情況下,Web部件的開發人員可能會決定不顯示某些或所有常見屬性,或者您可能沒有權限查看它們。
  • 可以查看和修改自定義Web部件屬性。在某些情況下,Web部件的開發人員可能會決定不顯示部分或全部自定義屬性,或者您可能沒有權限查看它們。
  • 可以查看和修改但不刪除具有適當權限的共享Web部件。但是,修改共享的Web部件後,它就變成了個性化的Web部件。
  • 可以查看和修改但不刪除個性化Web部件。這些Web部件的修改後的屬性值僅適用於您。
  • 可以查看,修改和刪除私人Web部件。這些Web部件僅適用於您,即使在共享視圖中,其他用戶也無法看到它們。

默認情況下,只有佈局和外觀屬性編輯個人視圖頁面時被定製爲當前用戶。自定義屬性是共享的,除非您明確地讓它們可個性化。

+1

這非常有幫助,謝謝。您的第二個鏈接基本上回答了我的問題:「當Web部件頁面處於共享視圖時,您...無法查看或修改個性化Web部件,無論是您自己的還是另一個用戶。」 你的第一個鏈接給了我一些關於如何完成我想要的東西的想法。再次感謝! – kwill

相關問題