È possibile eseguire il backup e ripristinare le personalizzazioni della pagina personale dopo la cancellazione?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/78990

Domanda

Abbiamo un codice personalizzato per consentire agli utenti di rimuovere, aggiungere o riordinare le parti Web su una pagina nella loro vista personale.È una pagina della pagina Web editoriale creata da un modulo utilizzando modelli.

Come possiamo effettuare aggiornamenti a questa pagina, dire di rimuovere una web part?(Apparentemente, se ho impostato IGNOREIFALReadyexists= True Web Parts verranno aggiunte alla pagina.) In tutto il tempo abbiamo cancellato e ricreando la pagina.Questo distrugge le personalizzazioni di Web Part Un utente potrebbe averlo fatto, e non è più accettabile come siamo ora in produzione.

C'è un modo per eseguire il backup e ripristinare la vista personale di un utente dopo aver eliminato e ricreare una pagina?

È stato utile?

Soluzione

In simple terms doing something like (important here is of course PersonalizationScope.User):

        SPLimitedWebPartManager webPartManager = SPContext.Current.Web.GetLimitedWebPartManager(this.Request.Url.ToString(), PersonalizationScope.User);
        int wpCounter = webPartManager.WebParts.Count; //get counter
        /*either start looping or for a single web part use*/        
WebPart webPart = webPartManager.WebParts[wpId];
         /*do something with the web part*/

But this has 1 important limitation - it only works for Web parts placed in Web part zone. In addition there is a method (actually part of the ASP.NET Web part infrastructure) called SavePersonalizationState via the Personalization property on each Web part, see more here (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.personalizationprovider.savepersonalizationstate(v=vs.90).aspx). I haven't really been in a situation to try myself!

The biggest challenge would be maybe to collect personalization data for all users. Maybe the fact that it uses the Provider pattern could help, by using the FindState method (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.personalizationprovider.findstate(v=vs.90).aspx) to extract all data.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top