using System; using System.Collections.Generic; using System.Text; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; namespace RestoreForm { class Program { static void Main(string[] args) { string listUrl = "http://moss/Lists/Sample List"; using (SPSite site = new SPSite(listUrl)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.GetList(listUrl); RestoreListForm(list, PAGETYPE.PAGE_DISPLAYFORM); //RestoreListForm(list, PAGETYPE.PAGE_EDITFORM); //RestoreListForm(list, PAGETYPE.PAGE_NEWFORM); } } Console.Write("Done."); Console.ReadLine(); } private static void RestoreListForm(SPList list, PAGETYPE ptype) { SPWeb web = list.ParentWeb; // Create Form File string formFilename = null; SPControlMode formMode = SPControlMode.Invalid; SPFileCollection files = list.RootFolder.Files; Guid wpId = Guid.NewGuid(); CalcFormInfo(ptype, out formFilename, out formMode); byte[] formContents = Encoding.ASCII.GetBytes(String.Format(pagecontent, list.Title, list.ID.ToString("B"), formMode, (int)ptype, wpId.ToString("B"), String.Concat("g_", wpId.ToString("D").Replace("-", "_")).ToLower())); try { if (files[formFilename].Exists) files[formFilename].Delete(); } catch { } SPFile formFile = files.Add(formFilename, formContents, true); } private static void CalcFormInfo(PAGETYPE type, out string fileName, out SPControlMode mode) { switch (type) { case PAGETYPE.PAGE_DISPLAYFORM: fileName = "DispForm.aspx"; mode = SPControlMode.Display; break; case PAGETYPE.PAGE_EDITFORM: fileName = "EditForm.aspx"; mode = SPControlMode.Edit; break; case PAGETYPE.PAGE_NEWFORM: fileName = "NewForm.aspx"; mode = SPControlMode.New; break; default: fileName = null; mode = SPControlMode.Invalid; break; } } static string pagecontent = @"<%@ Page language=""C#"" MasterPageFile=""~masterurl/default.master"" Inherits=""Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"" meta:webpartpageexpansion=""full"" meta:progid=""SharePoint.WebPartPage.Document"" %> <%@ Register Tagprefix=""SharePoint"" Namespace=""Microsoft.SharePoint.WebControls"" Assembly=""Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"" %> <%@ Register Tagprefix=""Utilities"" Namespace=""Microsoft.SharePoint.Utilities"" Assembly=""Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"" %> <%@ Import Namespace=""Microsoft.SharePoint"" %> <%@ Register Tagprefix=""WebPartPages"" Namespace=""Microsoft.SharePoint.WebPartPages"" Assembly=""Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"" %> :
{0} Default true 1 Normal true true true true true true true Modeless Default Cannot import this Web Part. true 00000000-0000-0000-0000-000000000000 {5} {1} 0 {2} ListForm {3} 1048576
"; } }