2012-07-05 45 views
2

我必須製作一個程序,用於更改列表項的UI版本號(在SharePoint的Web界面上顯示的版本號)。更改SharePoint列表項版本號

例如: 有一個項目的這些版本:1.0,1.1,1.2,2.0,2.2,2.3 我想要將2.2版本的標籤更改爲2.1。

據我所知,通過對象模型是不可能的,所以我必須直接修改數據庫。 在數據庫中有兩個相關表:

  • AllDocs - 在這個表中有其描述文檔的當前版本的行。

  • AllDocVersions - 在這個表中有行描述文檔的其他(不是當前)版本。

,如果我沒有改變當前的版本也不是那麼難,只是我改變右表中的UIversion領域。 (例如:2.2到2.1) 問題是如果版本更改更改當前版本。在這個例子中:2.2到2.4。 在這種情況下,我應該將版本2.2的記錄從AllDocVersions表移動到AllDocs,並將版本2.3的記錄從AllDocs移動到AllDocVersions,但這兩個表的結構並不相同。

任何人都可以描述如何填補這些表中缺失的字段? 任何人都可以提出任何其他方式的版本更改?

回答

0

一個,不是那麼容易的解決辦法是:

  1. 設的SharePoint做艱苦的工作,使用公共SharePoint API將v2.2恢復爲v2.4。它爲你做兩件事情:
    • 副本v2.2AllDocVersionsAllDocsv2.4
    • 移動v2.3AllDocsAllDocVersions
    • 它可能通過Web界面,所以我想它也可以用於.NET應用程序。
  2. 刪除v2.2
  3. 然後你就可以直接在數據庫與SQL UPDATE語句(S)如果v2.4不是期望的版本號更新的v2.4版本號v2.5v3.0等。
+0

這不是一個好的解決方案,而只是一種方法。 :-( – Csujo 2012-12-04 12:56:30

0

這可以讓你在正確的方向開始:

using (SPSite siteCollection = new SPSite("http://sp2010-server")) 
{ 
    SPWeb site = siteCollection.OpenWeb() 
    { 
     site.UIVersion = 3; 
     site.UIVersionConfigurationEnabled = true; 
     site.Update(); 
    } 
} 

來源:Altering the UI Version in SP2010

+1

此示例描述如何更改網站的UI版本,而不是列表項UI版本。 – Csujo 2012-07-09 19:49:38

相關問題