예제 #1
0
 private void btn_Export_Click(object sender, EventArgs e)
 {
     using (SPSite site = new SPSite(siteUrl))
     {
         using (SPWeb web = site.OpenWeb(webUrl))
         {
             SPFile thePage = web.GetFile(pageUrl);
             SPLimitedWebPartManager    theWebPartManager = thePage.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
             SPLimitedWebPartCollection webParts          = theWebPartManager.WebParts;
             XmlWriter writer = null;
             for (int i = 0; i < webParts.Count; i++)
             {
                 try
                 {
                     writer = new XmlTextWriter(tb_ExportPath.Text + webParts[i].Title + ".xml", Encoding.UTF8);
                     theWebPartManager.ExportWebPart(webParts[i], writer);
                     writer.Flush();
                     writer.Close();
                     tb_Message.Text += webParts[i].Title + "Export Success...";
                 }
                 catch
                 {
                     tb_Message.Text += webParts[i].Title + "Export Failed...";
                 }
             }
         }
     }
 }
        protected override void CreateChildControls()
        {
            base.CreateChildControls();
            //Create the textbox for specifying the Silverlight application
            textboxSilverlightApplication       = new TextBox();
            textboxSilverlightApplication.Width = 300;
            this.Controls.Add(textboxSilverlightApplication);
            //Create the drop down list for choosing the web part to connect to
            ddlSendMessageToThisWebPart = new DropDownList();
            //Add an item to the drop down list for every Connectable Silverlight Web Part on the page
            ListItem currentItem;
            SPFile   currentPage           = SPContext.Current.File;
            SPLimitedWebPartManager    WPM = currentPage.GetLimitedWebPartManager(PersonalizationScope.Shared);
            SPLimitedWebPartCollection WebPartCollection = WPM.WebParts;

            foreach (System.Web.UI.WebControls.WebParts.WebPart currentWebPart in WebPartCollection)
            {
                //Make sure this is a Connectable Silverlight Web Part
                if (currentWebPart.GetType().ToString() == "DemoWebParts.SilverlightToSilverlight.ConnectableSilverlightWebPart")
                {
                    //Add the item
                    currentItem       = new ListItem();
                    currentItem.Text  = currentWebPart.Title;
                    currentItem.Value = "SLReceiver_ctl00_m_" + currentWebPart.ClientID;
                    ddlSendMessageToThisWebPart.Items.Add(currentItem);
                }
            }
            this.Controls.Add(ddlSendMessageToThisWebPart);
        }
예제 #3
0
        private void btn_DeleteWPinPage_Click(object sender, EventArgs e)
        {
            using (SPSite site = new SPSite(siteUrl))
            {
                using (SPWeb web = site.OpenWeb(webUrl))
                {
                    SPFile thePage = web.GetFile(pageUrl);
                    SPLimitedWebPartManager    theWebPartManager = thePage.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
                    SPLimitedWebPartCollection webParts          = theWebPartManager.WebParts;
                    int Num = webParts.Count;
                    //foreach( System.Web.UI.WebControls.WebParts.WebPart wp inwebParts
                    for (int i = Num - 1; i >= 0; i--)
                    {
                        System.Web.UI.WebControls.WebParts.WebPart wp = webParts[i];
                        for (int j = 0; j < clBox_WebParts.Items.Count; j++)
                        {
                            if ((clBox_WebParts.GetItemChecked(j)) && (clBox_WebParts.Items[j].ToString() == wp.DisplayTitle))
                            {
                                theWebPartManager.DeleteWebPart(wp);
                                tb_Message.Text += clBox_WebParts.Items[j].ToString() + "Delete in Page Success...";
                            }
                        }
                    }

                    clBox_WebParts.Items.Clear();
                    for (int i = 0; i < webParts.Count; i++)
                    {
                        clBox_WebParts.Items.Add(webParts[i].DisplayTitle);
                    }
                }
            }
        }
예제 #4
0
        public SPLimitedWebPartCollectionInstance(ObjectInstance prototype, SPLimitedWebPartCollection limitedWebPartCollection)
            : this(prototype)
        {
            if (limitedWebPartCollection == null)
            {
                throw new ArgumentNullException("limitedWebPartCollection");
            }

            m_limitedWebPartCollection = limitedWebPartCollection;
        }
        private static void RestoreDataViewInZone(SPWeb web, string filePath)
        {
            if (!File.Exists(filePath) || web == null)
            {
                return;
            }

            XmlDocument doc = new XmlDocument();

            try
            {
                doc.Load(filePath);
            }
            catch (XmlException)
            {
                return;
            }

            XmlNodeList xFixupFiles = doc.DocumentElement.SelectNodes("FixupFiles/FixupFile[@DataViewInZone=\"TRUE\"]");

            foreach (XmlNode xFixupFile in xFixupFiles)
            {
                XmlAttribute xRelativePath = xFixupFile.Attributes["RelativePath"];
                if (xRelativePath == null)
                {
                    continue;
                }
                string relativePath = xRelativePath.Value;

                SPFile file = web.GetFile(relativePath);
                if (file == null)
                {
                    continue;
                }

                SPLimitedWebPartManager    manager      = file.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
                SPLimitedWebPartCollection pageWebParts = manager.WebParts;
                if (pageWebParts == null)
                {
                    continue;
                }

                foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in pageWebParts)
                {
                    DataFormWebPart dataForm = webPart as DataFormWebPart;
                    if (dataForm == null)
                    {
                        continue;
                    }

                    SubstituteGuidInZone(web, manager, dataForm, filePath);
                }
            }
        }
예제 #6
0
파일: Main.cs 프로젝트: madhur/SPProjects
        private void btnReset_Click(object sender, EventArgs e)
        {
            try
            {
                _wColl = _mySiteObj.GetWebPartsList();
            }
            catch (MySiteDoesNotExistException ex)
            {
                MessageBox.Show(ex.Message, "Error");
                return;
            }

            LoadControls();
        }
예제 #7
0
파일: Main.cs 프로젝트: madhur/SPProjects
        private void btnReset_Click(object sender, EventArgs e)
        {
            try
            {
                _wColl = _mySiteObj.GetWebPartsList();
            }
            catch (MySiteDoesNotExistException ex)
            {

                MessageBox.Show(ex.Message, "Error");
                return;
            }

            LoadControls();
        }
        private static void DeleteAllWebParts(string destinationPageUrlServerRelative, SPWeb destinationPageWeb, string sourcePageUrlServerRelative, SPWeb sourcePageWeb, bool shouldOverwriteDestinationWebParts)
        {
            SPWeb web  = null;
            SPWeb web2 = null;

            try
            {
                SPLimitedWebPartManager limitedWebPartManager = destinationPageWeb.GetLimitedWebPartManager(destinationPageUrlServerRelative, PersonalizationScope.Shared);
                SPLimitedWebPartManager manager2 = sourcePageWeb.GetLimitedWebPartManager(sourcePageUrlServerRelative, PersonalizationScope.Shared);
                web2 = limitedWebPartManager.Web;
                web  = manager2.Web;
                SPLimitedWebPartCollection webParts = manager2.WebParts;
                SPLimitedWebPartCollection parts2   = limitedWebPartManager.WebParts;
                if (shouldOverwriteDestinationWebParts && (parts2 != null))
                {
                    while (parts2.Count > 0)
                    {
                        try
                        {
                            limitedWebPartManager.DeleteWebPart(parts2[0]);
                            continue;
                        }
                        catch (WebPartPageUserException)
                        {
                        }
                    }
                }
            }
            catch (Exception e)
            {
                if (HttpContext.Current != null)
                {
                    throw;
                }
            }
            finally
            {
                if ((web != sourcePageWeb) && (web != null))
                {
                    web.Close();
                }
                if ((web2 != destinationPageWeb) && (web2 != null))
                {
                    web2.Close();
                }
            }
        }
예제 #9
0
 private void btn_LoadWPinPage_Click(object sender, EventArgs e)
 {
     using (SPSite site = new SPSite(siteUrl))
     {
         using (SPWeb web = site.OpenWeb(webUrl))
         {
             SPFile thePage = web.GetFile(pageUrl);
             SPLimitedWebPartManager    theWebPartManager = thePage.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
             SPLimitedWebPartCollection webParts          = theWebPartManager.WebParts;
             clBox_WebParts.Items.Clear();
             for (int i = 0; i < webParts.Count; i++)
             {
                 clBox_WebParts.Items.Add(webParts[i].DisplayTitle);
             }
             tb_Message.Text += "Load WebParts in Page Success...";
         }
     }
 }
        protected void setUpList(int baseId)
        {
            string siteUrl         = SPContext.Current.Web.Url;
            SPSite oSiteCollection = SPContext.Current.Site;

            oList = SPContext.Current.Web.Lists["Alerts Noticeboard"];
            SPWeb web = SPContext.Current.Web;


            web.AllowUnsafeUpdates = true;
            string pageUrl = "SitePages/managealerts.aspx";
            SPFile page    = web.GetFile(pageUrl);
            SPLimitedWebPartManager wpmgr = page.GetLimitedWebPartManager(PersonalizationScope.Shared);
            Guid   storageKey             = Guid.NewGuid();
            string wpId = String.Format("g_{0}", storageKey.ToString().Replace('-', '_'));



            SPLimitedWebPartCollection WebParts = wpmgr.WebParts;



            XsltListViewWebPart xwp = new XsltListViewWebPart();



            //SPViewCollection viewsCol = oList.Views;

            xwp.ID       = wpId;
            xwp.ListName = oList.ID.ToString("B").ToUpper();



            wpmgr.AddWebPart(xwp, "WebPartZone1", 0);
            if (WebParts.Count > 1)
            {
                wpmgr.DeleteWebPart(xwp);
            }
        }
예제 #11
0
        public string GetViewId()
        {
            string ViewId = string.Empty;

            using (SPSite site = new SPSite(SPContext.Current.Site.ID))
            {
                using (SPWeb web = site.OpenWeb(SPContext.Current.Web.ID))
                {
                    SPFile thePage = web.GetFile(Page.Request.Url.ToString());
                    SPLimitedWebPartManager    theWebPartManager = thePage.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
                    SPLimitedWebPartCollection WebPartColl       = theWebPartManager.WebParts;
                    for (int i = 0; i < WebPartColl.Count; i++)
                    {
                        if (WebPartColl[i].GetType().ToString() == "Microsoft.SharePoint.WebPartPages.XsltListViewWebPart")
                        {
                            ViewId += WebPartColl[i].ClientID.ToString().Replace('_', '-').Substring(2);
                        }
                    }
                }
            }
            SPForumsLeftMenuZone.InnerHtml += ViewId;
            return(ViewId);
        }
        private static void CopyAllWebParts(string destinationPageUrlServerRelative, SPWeb destinationPageWeb, string sourcePageUrlServerRelative, SPWeb sourcePageWeb, bool shouldOverwriteDestinationWebParts)
        {
            SPWeb web  = null;
            SPWeb web2 = null;

            try
            {
                SPLimitedWebPartManager limitedWebPartManager = destinationPageWeb.GetLimitedWebPartManager(destinationPageUrlServerRelative, PersonalizationScope.Shared);
                SPLimitedWebPartManager manager2 = sourcePageWeb.GetLimitedWebPartManager(sourcePageUrlServerRelative, PersonalizationScope.Shared);
                web2 = limitedWebPartManager.Web;
                web  = manager2.Web;
                SPLimitedWebPartCollection webParts = manager2.WebParts;
                SPLimitedWebPartCollection parts2   = limitedWebPartManager.WebParts;

                if (webParts.Count > 0)
                {
                    foreach (System.Web.UI.WebControls.WebParts.WebPart part in webParts)
                    {
                        if (!part.IsClosed)
                        {
                            System.Web.UI.WebControls.WebParts.WebPart webPart = parts2[part.ID];
                            if (webPart == null)
                            {
                                try
                                {
                                    string zoneID = manager2.GetZoneID(part);
                                    limitedWebPartManager.AddWebPart(part, zoneID, part.ZoneIndex);
                                }
                                catch (ArgumentException e)
                                {
                                }
                            }
                            else
                            {
                                if (webPart.IsClosed)
                                {
                                    limitedWebPartManager.OpenWebPart(webPart);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                if (HttpContext.Current != null)
                {
                    throw;
                }
            }
            finally
            {
                if ((web != sourcePageWeb) && (web != null))
                {
                    web.Close();
                }
                if ((web2 != destinationPageWeb) && (web2 != null))
                {
                    web2.Close();
                }
            }
        }
예제 #13
0
파일: Main.cs 프로젝트: madhur/SPProjects
        private void LoadControls()
        {
            int index = 0;

            dtWpData.Tables.Clear();
            lstWebParts.Items.Clear();
            lstWebParts.ClearSelected();
            dgProperties.DataSource = null;
            dgProperties.ClearSelection();
            _changes.Rows.Clear();

            try
            {
                _wColl = _mySiteObj.GetWebPartsList();
            }
            catch (MySiteDoesNotExistException ex)
            {
                MessageBox.Show(ex.Message, "Error");
                return;
            }
            catch (UserNotFoundException ex)
            {
                MessageBox.Show(ex.Message, "Error");
                return;
            }

            foreach (System.Web.UI.WebControls.WebParts.WebPart wpPart in _wColl)
            {
                #region Add Webparts to ListBox and and there properties

                lstWebParts.Items.Add(new WebPartItem(wpPart.Title, wpPart.ID, wpPart.GetType().AssemblyQualifiedName));
                dtWpData.Tables.Add(new DataTable());
                dtWpData.Tables[index].Columns.Add("Property");
                dtWpData.Tables[index].Columns.Add("Type");

                dtWpData.Tables[index].Columns.Add("Value");
                dtWpData.Tables[index].Columns.Add("Assembly");
                dtWpData.Tables[index].Columns.Add("IsDirty");
                dtWpData.Tables[index].Columns.Add("PropertyType");

                Ref.PropertyInfo[] propInfoColl = wpPart.GetType().GetProperties();


                foreach (Ref.PropertyInfo propInfo in propInfoColl)
                {
                    Object[] attribColl = propInfo.GetCustomAttributes(true);

                    foreach (Object obj in attribColl)
                    {
                        #region Add Attribute to DT

                        if (obj is WebBrowsableAttribute)
                        {
                            WebBrowsableAttribute browAtt = (WebBrowsableAttribute)obj;

                            if (browAtt.Browsable)
                            {
                                Object value = propInfo.GetValue(wpPart, null);
                                dtWpData.Tables[index].Rows.Add(propInfo.Name, propInfo.PropertyType, value, propInfo.PropertyType.AssemblyQualifiedName, false, propInfo.PropertyType.ToString());


                                break;
                            }
                        }

                        else if (obj is WebPartStorageAttribute)
                        {
                            WebPartStorageAttribute storAtt = obj as WebPartStorageAttribute;
                            if (storAtt.Storage == Storage.Personal)
                            {
                                Object value = propInfo.GetValue(wpPart, null);

                                dtWpData.Tables[index].Rows.Add(propInfo.Name, propInfo.PropertyType, value, propInfo.PropertyType.AssemblyQualifiedName, false, propInfo.PropertyType.ToString());

                                break;
                            }
                        }
                        #endregion
                    }
                }

                index++;
            }

            dtOriginal = dtWpData.Copy();



            #endregion
        }
        private static void RestoreDataViewOutZone(SPWeb web, string filePath)
        {
            if (!File.Exists(filePath) || web == null)
            {
                return;
            }

            XmlDocument doc = new XmlDocument();

            try
            {
                doc.Load(filePath);
            }
            catch (XmlException)
            {
                return;
            }

            XmlNodeList xFixupFiles = doc.DocumentElement.SelectNodes("FixupFiles/FixupFile[@DataViewOutZone=\"TRUE\"]");

            foreach (XmlNode xFixupFile in xFixupFiles)
            {
                XmlAttribute xRelativePath = xFixupFile.Attributes["RelativePath"];
                if (xRelativePath == null)
                {
                    continue;
                }
                string relativePath = xRelativePath.Value;

                SPFile file = web.GetFile(relativePath);
                if (file == null)
                {
                    continue;
                }

                string fileName = file.Name;

                string content = String.Empty;
                using (StreamReader reader = new StreamReader(file.OpenBinaryStream()))
                {
                    content = reader.ReadToEnd();
                    content = SubstituteGuid(web, filePath, content);
                }

                UTF8Encoding encoder        = new UTF8Encoding();
                byte[]       contentAsBytes = encoder.GetBytes(content);

                // store to temporary file
                SPFile temp = web.Files.Add("temp.aspx", contentAsBytes);

                SPLimitedWebPartManager    sourceManager  = file.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
                SPLimitedWebPartCollection sourceWebParts = sourceManager.WebParts;

                SPLimitedWebPartManager targetManager = temp.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
                foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in sourceWebParts)
                {
                    string zoneId = sourceManager.GetZoneID(webPart);
                    targetManager.AddWebPart(webPart, zoneId, webPart.ZoneIndex);
                }

                foreach (SPWebPartConnection connection in sourceManager.SPWebPartConnections)
                {
                    targetManager.SPConnectWebParts(connection.Provider, connection.ProviderConnectionPoint, connection.Consumer, connection.ConsumerConnectionPoint, connection.Transformer);
                }

                file.Delete();

                temp.CopyTo(fileName);
                temp.Delete();

                web.Update();
            }
        }
예제 #15
0
파일: Main.cs 프로젝트: madhur/SPProjects
        private void LoadControls()
        {
            int index = 0;

            dtWpData.Tables.Clear();
            lstWebParts.Items.Clear();
            lstWebParts.ClearSelected();
            dgProperties.DataSource = null;
            dgProperties.ClearSelection();
            _changes.Rows.Clear();

            try
            {
                _wColl = _mySiteObj.GetWebPartsList();
            }
            catch (MySiteDoesNotExistException ex)
            {

                MessageBox.Show(ex.Message, "Error");
                return;
            }
            catch (UserNotFoundException ex)
            {
                MessageBox.Show(ex.Message, "Error");
                return;
            }

            foreach (System.Web.UI.WebControls.WebParts.WebPart wpPart in _wColl)
            {
                #region Add Webparts to ListBox and and there properties

                lstWebParts.Items.Add(new WebPartItem(wpPart.Title, wpPart.ID, wpPart.GetType().AssemblyQualifiedName));
                dtWpData.Tables.Add(new DataTable());
                dtWpData.Tables[index].Columns.Add("Property");
                dtWpData.Tables[index].Columns.Add("Type");

                dtWpData.Tables[index].Columns.Add("Value");
                dtWpData.Tables[index].Columns.Add("Assembly");
                dtWpData.Tables[index].Columns.Add("IsDirty");
                dtWpData.Tables[index].Columns.Add("PropertyType");

                Ref.PropertyInfo[] propInfoColl = wpPart.GetType().GetProperties();

                foreach (Ref.PropertyInfo propInfo in propInfoColl)
                {
                    Object[] attribColl = propInfo.GetCustomAttributes(true);

                    foreach (Object obj in attribColl)
                    {
                        #region Add Attribute to DT

                        if (obj is WebBrowsableAttribute)
                        {
                            WebBrowsableAttribute browAtt = (WebBrowsableAttribute)obj;

                            if (browAtt.Browsable)
                            {
                                Object value = propInfo.GetValue(wpPart, null);
                                dtWpData.Tables[index].Rows.Add(propInfo.Name, propInfo.PropertyType, value, propInfo.PropertyType.AssemblyQualifiedName,false,propInfo.PropertyType.ToString());

                                break;

                            }
                        }

                        else if (obj is WebPartStorageAttribute)
                        {
                            WebPartStorageAttribute storAtt = obj as WebPartStorageAttribute;
                            if (storAtt.Storage == Storage.Personal)
                            {
                                Object value = propInfo.GetValue(wpPart, null);

                                dtWpData.Tables[index].Rows.Add(propInfo.Name, propInfo.PropertyType, value, propInfo.PropertyType.AssemblyQualifiedName,false,propInfo.PropertyType.ToString());

                                break;

                            }

                        }
                        #endregion

                    }

                }

                index++;

            }

            dtOriginal = dtWpData.Copy();

                #endregion
        }