2017-07-05 39 views
1

J'essaie de définir une barre d'outils pour les composants WebPart de la vue de liste SharePoint. Je peux faire cela dans SSOM mais ne peux pas dans CSOM. J'ai essayé en mettant à jour l'élément de type barre d'outils dans la propriété XMLDefinition du webpart de la vue liste. Mais ça n'a pas marché. J'ai aussi essayé en obtenant le MethodInfo comme ci-dessous.Définition de la barre d'outils dans SharePoint ListView Webparts à l'aide de CSOM

Type[] toolbarMethodParamTypes = { Type.GetType("System.String") }; 
      MethodInfo setToolbarTypeMethod = webpartView.GetType().GetMethod("SetToolbarType", BindingFlags.Instance | BindingFlags.NonPublic, null, toolbarMethodParamTypes, null); 

Mais il renvoie null.

Existe-t-il d'autres moyens d'y parvenir? Toute aide serait appréciée. Merci d'avance.

Répondre

1

Il n'existe aucun moyen direct de définir la barre d'outils à l'aide de CSOM. Nous avons donc décidé de configurer la barre d'outils en utilisant Jquery. J'ai ajouté le script ci-dessous dans le JSLink des proxies webpart.

function hideToolbar(renderCtx) { 
    var toolbar=renderCtx.viewTitle; 
    if(toolbar != "") 
    { 
     if(toolbar=="None") 
     renderCtx.ListSchema.Toolbar="None"; 
     else if(toolbar=="Freeform") 
     renderCtx.ListSchema.Toolbar="Freeform"; 
    } 
} 
(function() { 
    var overrideContext = {}; 
    overrideContext.Templates = {}; 
    overrideContext.OnPreRender = hideToolbar; 
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideContext); 
})(); 

J'ai défini le titre ViewTitle dans mon code CSOM lorsque le composant WebPart a été ajouté dans la page.