Meilleur auteur de réponses
Afficher une liste d'un site parent dans un sous site

Question
-
Bonjour,
Je travaille actuellement sur la réalisation d'un site SharePoint 2013, et j'aimerai rendre disponible une liste ce trouvant sur mon site parent, dans un sous site. Mais tout en conservant les fonctionnalité des la liste du site parent (créer,supprimer,modifier un élément).
J'ai chercher du coté de la webpart de requête de contenu, mais elle ne permet pas grand chose.
Existerait il une solution ?
Merci d'avance
Réponses
-
Bonjour
le webpart de requête de contenu ne fait que "lire" les données. Donc effectivement on ne retrouve pas les features d'un webpart de list classique.
J'aurais tout de même tendance à partir sur une base de ce type pour l'affichage de la liste, et à rajouter des boutons html + js (genre avec webpart content editor) pour fournir des liens pour new, edit, delete en utilisant l'api de dialog JS de sharepoint pour afficher les formulaires correspondant sur le site parent (il suffit de fournir la bonne url) et peut etre un peu de modèle objet client JS (pour le delete). C'est un peu "de la triche" mais peut suffire peut être pour le besoin ? :)
Sinon il faut peut etre revoir l'archi de votre contenu pour ne pas avoir besoin de faire ça et de pouvoir travailler sur le site contenant la liste :)
Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel
- Marqué comme réponse Gokan OzcifciMVP lundi 22 septembre 2014 06:05
Toutes les réponses
-
Bonsoir,
Tu peux nous éclairer s'il te plaît sur ce que tu entends par "rendre disponible" ta liste ?
Entre ton besoin de conserver les fonctionnalités basiques d'une liste (CRUD) qui me fait penser que tu veux avoir plutôt un template de liste et ta recherche d'un composant Web Part pour faire du requêtage , je n'arrive pas à clairement voir si ce qui t'intéresse est le fond (configuration de ta liste) ou la forme (contenu que tu veux remonter un niveau parent uniquement ).
Un autre point , je suppose que tu es sur du OnPremise. Tu as quel type de SharePoint : Standard ou Entreprise ?
Je pars de l'hypothèse que tu souhaites plutôt faire du requêtage et dans ce cas tu peux très bien utiliser le composant Web Part de requête de contenu que tu peux personnaliser (développement) . Si tu es sur une version SharePoint Entreprise, la meilleur solution reste le composant Web Part de recherche de contenu.
Tiens nous au courant si cela peut t'aider
Bon courage
Mutandis mutatis
- Proposé comme réponse Mahori jeudi 11 septembre 2014 20:28
-
Bonjour,
Est ce que vous avez essayé la WebPart XsltListViewWebPart?
vous pouvez l'ajouter directement dans une page
<WebPartPages:XsltListViewWebPart ID="XsltListViewWebPart2" runat="server" ListUrl="Lists/PublicDocuments" IsIncluded="True" NoDefaultStyle="TRUE" Title="Public Documents" PageType="PAGE_NORMALVIEW" FrameType="None" Default="False" ViewContentTypeId="0x" ExportMode="All" ExportControlledProperties="true"> </WebPartPages:XsltListViewWebPart>
Ou par code
using (SPSite site = new SPSite(SPContext.Current.Site.Url)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["Tracker"]; XsltListViewWebPart XsltListViewWebPart1 = new XsltListViewWebPart();
XsltListViewWebPart1.WebId = web.ID XsltListViewWebPart1.ListId = list.ID; SPView lstview = list.DefaultView; XsltListViewWebPart1.Toolbar = ""; StringBuilder xml = new StringBuilder(); xml.Append("<View Name='" + list.DefaultView.ID.ToString("B").ToString().ToUpper(CultureInfo.InvariantCulture) + "' TabularView='FALSE' MobileView='TRUE' Type='HTML' Hidden='TRUE' DisplayName='' Url='" + Request.Url.ToString() + "' Level='1' BaseViewID='1' ContentTypeID='0x' ImageUrl='/_layouts/images/generic.png'>"); xml.Append("<Query><OrderBy><FieldRef Name='ID'/></OrderBy></Query>"); xml.Append("<ViewFields> <FieldRef Name='LinkTitle'/><FieldRef Name='Edit'/><FieldRef Name='Role'/></ViewFields>"); xml.Append("<RowLimit Paged='TRUE'>20</RowLimit>"); xml.Append("<Aggregations Value='Off'/>"); xml.Append("<Toolbar Type='None'/></View>"); XsltListViewWebPart1.XmlDefinition = xml.ToString();//lstview.GetViewXml(); XsltListViewWebPart1.AllowClose = false; XsltListViewWebPart1.AllowConnect = false; XsltListViewWebPart1.AllowEdit = false; XsltListViewWebPart1.AllowHide = false; XsltListViewWebPart1.AllowMinimize = false; XsltListViewWebPart1.AllowZoneChange = false; XsltListViewWebPart1.ChromeType = PartChromeType.Default; RowLevel_list1.Controls.Add(XsltListViewWebPart1); } }
Cordialement,
Ahmed Mehdi
Technical Manager | PROGED
Consultant SharePoint Tunisie
http://www.proged.tn- Modifié Ahmed MEHDI jeudi 11 septembre 2014 02:56
- Proposé comme réponse Ahmed MEHDI vendredi 12 septembre 2014 09:48
-
-
Bonjour
le webpart de requête de contenu ne fait que "lire" les données. Donc effectivement on ne retrouve pas les features d'un webpart de list classique.
J'aurais tout de même tendance à partir sur une base de ce type pour l'affichage de la liste, et à rajouter des boutons html + js (genre avec webpart content editor) pour fournir des liens pour new, edit, delete en utilisant l'api de dialog JS de sharepoint pour afficher les formulaires correspondant sur le site parent (il suffit de fournir la bonne url) et peut etre un peu de modèle objet client JS (pour le delete). C'est un peu "de la triche" mais peut suffire peut être pour le besoin ? :)
Sinon il faut peut etre revoir l'archi de votre contenu pour ne pas avoir besoin de faire ça et de pouvoir travailler sur le site contenant la liste :)
Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel
- Marqué comme réponse Gokan OzcifciMVP lundi 22 septembre 2014 06:05
-
Bonjour,
peut-etre ce lien pourrait vous aider : http://sharepointontop.blogspot.be/2012/06/show-listview-webpart-from-parent-site.html
Il utilise SharePoint designer pour exporter la webpart et la réutiliser dans le site voulu. (Je ne l'ai pas tester mais ça pourrait aider)
Best regards, Christopher.
Blog | Mail
Please remember to click "Mark As Answer" if a post solves your problem or "Vote As Helpful" if it was useful.
Why mark as answer? -
Bonjour,
enfaite je l'ai utilisé plusieurs fois pour afficher des listes d'autres site de la même collection de sites :)
voici un exemple de webpart qui affiche la liste tâche du site parent dans un sous site :
using System; using System.ComponentModel; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using Microsoft.SharePoint.WebPartPages; using System.Text; namespace SharePointProject2.RootWebListViewPart { [ToolboxItemAttribute(false)] public class RootWebListViewPart : Microsoft.SharePoint.WebPartPages.WebPart { protected override void CreateChildControls() { using (SPSite site = new SPSite(SPContext.Current.Site.Url)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["Tâches"]; XsltListViewWebPart XsltListViewWebPart1 = new XsltListViewWebPart(); XsltListViewWebPart1.WebId = web.ID; XsltListViewWebPart1.ListId = list.ID; SPView lstview = list.DefaultView; XsltListViewWebPart1.Toolbar = ""; XsltListViewWebPart1.ViewGuid = lstview.ID.ToString("B"); XsltListViewWebPart1.AllowClose = false; XsltListViewWebPart1.AllowConnect = false; XsltListViewWebPart1.AllowEdit = false; XsltListViewWebPart1.AllowHide = false; XsltListViewWebPart1.AllowMinimize = false; XsltListViewWebPart1.AllowZoneChange = false; XsltListViewWebPart1.ChromeType = PartChromeType.Default; Controls.Add(XsltListViewWebPart1); } } } } }
Cordialement,
Ahmed Mehdi
Technical Manager | PROGED
Consultant SharePoint Tunisie
http://www.proged.tn