Domanda

Sono nuovo allo sviluppo di SharePoint e recentemente rimettiti da un problema di implementare la propria soluzione sandboxed che eseguono un lavoro di ricevitore di eventi (dettagliato).

Creare una sottocartelle nella cartella superiore in una libreria quando viene creata la cartella superiore.Ho testato WSP in Ambiente di sviluppo e che ha funzionato come mi aspetto, ma dopo averlo caricato per soluzioni del sito di produzione e attivarlo non c'è alcun effetto.

Cosa sto facendo male?

Codice:

using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;

namespace EventReceiverProject5.EventReceiver1
{
    /// <summary>
    /// List Item Events
    /// </summary>
    public class EventReceiver1 : SPItemEventReceiver
    {
       /// <summary>
       /// An item was added.
       /// </summary>
       public override void ItemAdded(SPItemEventProperties properties)
       {
           using (SPSite site = properties.OpenSite())
           {
               using (SPWeb web = site.OpenWeb())
               {
                   base.ItemAdded(properties);
                   {
                       SPList list = web.Lists.TryGetList("Portfolio");

                       SPListItem projectFolder = properties.ListItem;

                       SPFolderCollection folders = list.RootFolder.SubFolders;
                       SPFolder a1 = folders.Add("/DocLib2" + "/" + projectFolder.Name + "/" + "01. About");
                       SPFolder a2 = folders.Add("/DocLib2" + "/" + projectFolder.Name + "/" + "02. Presentation");
                   }
               }
           }
       }


    }
}
.

Aggiornamento: C'è una cosa che ho trovato: la soluzione ha funzionato bene sul sito principale della produzione ma non su alcun ritrovo.

È stato utile?

Soluzione 3

Infine, ottengo questo lavoro.All'inizio non ho specificato il corretto URL Web per il metodo SpFolderCollection.add.Dopo aver aggiunto proprietà. Bavyburl ad esso, ottenendo il lavoro giusto.

comunque grazie di tutto per aiuto.

Il codice di lavoro sembra quello:

using System;
using Microsoft.SharePoint;

namespace DesignPortfolioProjectFolders.EventReceiver1
{
    /// <summary>
    /// List Item Events
    /// </summary>
    public class EventReceiver1 : SPItemEventReceiver
    {
    /// <summary>
    /// An item was added.
    /// </summary>
    public override void ItemAdded(SPItemEventProperties properties)
    {
            base.ItemAdded(properties);
            {
                    using (SPWeb web = properties.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("Portfolio");

                        SPListItem projectFolder = properties.ListItem;

                        SPFolderCollection folders = list.RootFolder.SubFolders;
                        SPFolder a1 = folders.Add(properties.WebUrl + "/DocLib2" + "/" + projectFolder.Name + "/" + "01. About");
                        SPFolder a2 = folders.Add(properties.WebUrl + "/DocLib2" + "/" + projectFolder.Name + "/" + "02. Presentation");
                        }
                }
        }

    }
}
.

Altri suggerimenti

Non penso che ti sia consentito utilizzare il gruppo Microsoft.SharePoint.Workflow nell'ambiente Sandbox.Se fai riferimento ai gruppi ma non li usano, causeranno problemi.

In soluzioni Sandbox, sei libero di utilizzare quanto segue: Tutto di Microsoft.SharePoint, tranne

Costruttore sptite
. Spsecurity
. Spwworkitem e SPwweriTemCollection
Spalertcollection.add
. SpalertTemplateCollection.add
. SpugaleSerlution e SpusersolationCollection
SPTRANSFORMUILITÀ » Microsoft.SharePoint.Navigation. Microsoft.SharePoint.utilities, ad eccezione della Spirility.Sendemail
Sputility.getntfulnameandemailfromlogin
. Microsoft.SharePoint.Workflow
. Microsoft.SharePoint.WebPartpages, ad eccezione di SPWebPartManager
SPWEBPARTConnection
. Webpartzone
. WebPartPage
. Toolpanan ToolPart

Si prega di prendere nota che il ricevitore dell'evento deve essere allegato in un elenco per farlo funzionare.Se il ricevitore evento ha il parametro LISTURL, la tua soluzione funzionerebbe ma se non suggerisco di creare un ricevitore funzione all'interno del tuo progetto.e in questo ricevitore funzionalità forza l'allegato del ricevitore dell'evento da Allegarsi a livello di programmazioneRicevitore evento nella tua lista

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