[WSS 3.0] 更新清單建立者(Author)

[WSS 3.0] 更新清單建立者(Author)

 

using (SPSite oSite = new SPSite("http://localhost"))
{
	using (SPWeb oWeb = oSite.OpenWeb("docs"))
	{
		SPList oList = oWeb.Lists["文件"];
		SPListItem oListItem = oList.GetItemById(1);

		SPFieldUserValue oUser = new SPFieldUserValue(oWeb, oWeb.AllUsers["domain\\john"].ID, oWeb.AllUsers["domain\\john"].LoginName);
		oListItem["Author"] = oUser;
		oListItem["Editor"] = oUser;
		oListItem.SystemUpdate(true);
                    
		if (oList.EnableModeration)
   			oListItem.File.Approve("Upgrade User Account.");
	}
}

注意事項:

  1. 雖然只有要更新”Author”這個欄位,但是在清單類型是”文件庫(Document Library)
    的時候,不加上更新”Editor”欄位時,無法更新成功
    (不會有錯誤訊息,但是在執行Update
    之後,會回復原始值),清單類型是”清單(List)”時,則無此限制。
  2. SystemUpdate 也可使用 Update、UpdateOverwriteVersion,差別在版本的部份。
    如果有開啟版本時,Update會增加次要版本、SystemUpdate不會增加版本,但是不會改Editor;
    UpdateOverwriteVersion會增加次要版本,詳細請參考
    MSDN UpdateMSDN SystemUpdate
    MSDN UpdateOverwriteVersion