Как программно удалить скрытые / закрытые несколько веб-частей, которые попадают под сайт в Sharepoint 2007 - PullRequest
0 голосов
/ 14 марта 2011

Мое требование - удалить скрытые / неиспользуемые веб-части под сайтом.Также не могу получить список всех страниц сайта.Нужна помощь по этому вопросу

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Люди, найдите частично код для вышеуказанного вопроса

  • Создайте объект сайта и сети.

, используя (SPSite oSite = new> SPSite (cbWebSite.SelectedItem.ToString ())) с использованием (SPWeb web = oSite.OpenWeb ())

  • Создание таблицы данных для хранения списка устаревших, закрытых / скрытых веб-частей.

dtWebParts = (System.Data.DataTable) CreateDataTableForUnusedWebParts ();

 System.Data.DataTable dtWebPartReport = new
  System.Data.DataTable();

        DataColumn dtCol = new DataColumn();
        dtCol.ColumnName = COLUMN_WEBAPP_NAME;
        dtCol.DataType = System.Type.GetType("System.String");
        dtWebPartReport.Columns.Add(dtCol);
        .
        .
        .
  • Вызов функции для создания отчета.

        private void generateWebPartReportForWeb(SPWeb oWeb, SPSite oSite)
    {
    
        try
        {
            //If team Site then read homepage
            foreach (SPFile rootFile in oWeb.Files)
            {
                checkPageForWebParts(oWeb, oSite,rootFile);
            }

            foreach (SPList oList in oWeb.Lists)
            {
                if (oList.BaseType == SPBaseType.DocumentLibrary)
                {
                    lstName = oList.Title.ToString();
                    spDocumentLibrary =(SPDocumentLibrary)oWeb.Lists[lstName];
                    if (spDocumentLibrary.Title.ToString() !="Master Page Gallery" &&
                        spDocumentLibrary.Title.ToString() !="dataconnectionLib" &&
                        spDocumentLibrary.Title.ToString() !="Form Templates" &&
                        spDocumentLibrary.Title.ToString() !="Images" &&
                        spDocumentLibrary.Title.ToString() !="List Template Gallery" &
                        spDocumentLibrary.Title.ToString() !="Scripts" &&
                        spDocumentLibrary.Title.ToString() !="Site Template Gallery" &
                        spDocumentLibrary.Title.ToString() !="Style Library" &&
                        spDocumentLibrary.Title.ToString() !="Web Part Gallery" &&
                        spDocumentLibrary.Title.ToString() !="Workflows")
                    {

                        foreach (SPListItem spListItem in spDocumentLibrary.Items)
                        {
                            spFile = spListItem.File;
                            checkPageForWebParts(oWeb, oSite,spFile);
                        }
                    }
                }
            }

            if (oWeb.Webs.Count > 0)
            {
                foreach (SPWeb subsite in oWeb.Webs)
                {
                    generateWebPartReportForWeb(subsite, oSite);
                }
            }

            DataView dv = dtWebParts.DefaultView;
            dv.Sort = "Document Library Path  ASC";
            dataGridView1.DataSource = dtWebParts;
            dataGridView1.Update();

        }
  • Код для проверки веб-части в СТРАНИЦАХ:
           private void checkPageForWebParts(SPWeb oWeb,SPSite oSite, SPFile spFile)
         {
            try
             {
            string[] strFileName = spFile.Name.Split('.');
            string fileExtension = strFileName[strFileName.Length - 1].ToUpper();
            if (fileExtension.ToUpper() == "ASPX")
            {
                using (SPLimitedWebPartManager wpm = oWeb.GetLimitedWebPartManager(spFile.Url, PersonalizationScope.Shared))
                {
                    foreach (System.Web.UI.WebControls.WebParts.WebPart wp in wpm.WebParts)
                    {
                        if (wp.IsClosed || wp.Hidden)
                        {
                            DataRow dr = dtWebParts.NewRow();
                            if (oSite.WebApplication.Name != null)
                                dr[COLUMN_WEBAPP_NAME] = oSite.WebApplication.Name;
                            if (oSite.Url != null)
                                dr[COLUMN_SITECOLLECTION_NAME] = oSite.Url;
                            if (oWeb.Name != null)
                                dr[COLUMN_SUBSITE_NAME] = oWeb.Name;
                            if (oWeb.Url != null)
                                dr[COLUMN_DOCLIB_PATH] =cbWebApp.SelectedItem.ToString() + spFile.ServerRelativeUrl;//oWeb.Url + "/" + spDocumentLibrary.ToString();
                            if (spFile.Name != null)
                                dr[COLUMN_DOCNAME] = spFile.Name;
                            if (wp.Title != null)
                                dr["WebPart Name"] = wp.Title;
                            if (wp.IsClosed)
                                dr["Hidden/Closed"] = "Closed";
                            else if (wp.Hidden)
                                dr["Hidden/Closed"] = "Hidden";

                            dtWebParts.Rows.Add(dr);
                            dtWebParts.AcceptChanges();
                        }
                    }
                }
            }
        }
0 голосов
/ 14 марта 2011

Эта ссылка будет вам полезна.

protected override void CreateChildControls()
    {
      list = new BulletedList();
      WebPartZoneCollection zones = this.WebPartManager.Zones;
      foreach (WebPartZone zone in zones)
      {
        WebPartCollection webparts = zone.WebParts;
        foreach (WebPart webpart in webparts)
        {
          **You can check webpart.hidden property here.**
          list.Items.Add(
          string.Format("{0} ({1}), {2}",
            webpart.Title, webpart.GetType().Name,
            zone.DisplayTitle));
        }
      }
      this.Controls.Add(list);
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...