IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Blog d'un SharePointeur

Trouver le BaseViewID d'une vue pour attacher son JSLink

Noter ce billet
par , 30/10/2014 à 22h00 (1381 Affichages)
Bonjour,

Lors de la création d'un JSLink, il peut arriver que l'on soit obligé d'utiliser une vue que l'on n'a pas provisionné par code et donc dont on a pas forcément l'ID...
Alors bien sur, il est possible de passer par SharePoint Manager (quand on est pas sur online) ou encore par Powershell afin de trouver l'information, je vous l'accorde. Mais je vous propose ici une solution beaucoup plus rapide.

Pour rappel la structure d'un JSLink classique est de la forme :
Code jslink : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(function () {
    var context = {};
    context.Templates = {};

    context.Templates.Header = headerTemplate;
    context.Templates.Footer = footerTemplate;
    context.Templates.Group = groupTemplate;

    context.Templates.Item = itemTemplate;

    context.BaseViewID = <MyListViewBaseID>;
    context.ListTemplateType = <MyListTemplateBaseID>;

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(context);
})();

function headerTemplate(ctx) {
    return "header template";
}

function itemTemplate(ctx) {
    return "item template";
}

function footerTemplate(ctx) {
    return "footer template";
}

function groupTemplate(ctx, group, groupId, listItem, listSchema, level, expand) {
    return "group template";
}

La fonction en question permet juste de charger le context, en surchargeant la méthode RenderListView native, et donc de retrouver les informations concernant l'ensemble des listsview utilisées dans la page :
Code jslink : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
ExecuteOrDelayUntilScriptLoaded(function () {
    RenderListView = function (overrideContext, webPartID) {
        console.log(ctx)
    }
}, 'ClientTemplates.js');

Le JSLink à donc maintenant la forme :
Code jslink : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(function () {
    var context = {};
    context.Templates = {};

    context.Templates.Header = headerTemplate;
    context.Templates.Footer = footerTemplate;
    context.Templates.Group = groupTemplate;

    context.Templates.Item = itemTemplate;

    context.BaseViewID = <MyListViewBaseID>;
    context.ListTemplateType = <MyListTemplateBaseID>;

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(context);

    ExecuteOrDelayUntilScriptLoaded(function () {
        RenderListView = function (overrideContext, webPartID) {
            console.log(ctx)
        }
    }, 'ClientTemplates.js');
})();

Ouvrez votre console vous y trouverez certainement votre bonheur avec toutes ces informations :
a {listBaseType: 0, listTemplate: "10005", listName: "{84039793-11D3-4F91-B79B-BFBCBBECDFBF}", view: "{E32F4ECF-BB37-4BB0-9230-3654E118656C}", listUrlDir: "/.../Lists/Publications"…}
AllowGridMode: true
BasePermissions: Object
BaseViewID: 33
CascadeDeleteWarningMessage: null
ContentTypesEnabled: true
CurrentSelectedItems: null
CurrentUserId: 9
CurrentUserIsSiteAdmin: true
EnableMinorVersions: false
ExternalDataList: false
HasRelatedCascadeLists: 0
HttpPath: "https://.../_vti_bin/owssvr.dll?CS=65001"
HttpRoot: "https://..."
IsAppWeb: false
IsClientRendering: true
LastSelectableRowIdx: null
ListData: Object
ListSchema: Object
ListTemplateType: 10005
ListTitle: "Publications"
ModerationStatus: 0
NavigateForFormsPages: false
OfficialFileName: ""
OfficialFileNames: ""
PortalUrl: null
RecycleBinEnabled: 1
RegionalSettingsTimeZoneBias: "-60"
SelectAllCbx: null
SendToLocationName: ""
SendToLocationUrl: ""
SiteTemplateId: 1
SiteTitle: "..."
StateInitDone: false
TableCbxFocusHandler: null
TableMouseoverHandler: null
Templates: Object
TotalListItems: null
WorkflowsAssociated: false
WriteSecurity: "1"
bInitialRender: false
clvp: CLVP
ctxId: 106
displayFormUrl: "https://.../_layouts/15/listform.aspx?PageType=4&ListId=%7B84039793%2D11D3%2D4F91%2DB79B%2DBFBCBBECDFBF%7D"
editFormUrl: "https://.../_layouts/15/listform.aspx?PageType=6&ListId=%7B84039793%2D11D3%2D4F91%2DB79B%2DBFBCBBECDFBF%7D"
enteringGridMode: false
existingServerFilterHash: undefined
imagesPath: "/_layouts/15/images/"
inGridMode: false
isForceCheckout: false
isModerated: false
isPortalTemplate: null
isVersions: 0
isWebEditorPreview: 0
isXslView: true
listBaseType: 0
listName: "{84039793-11D3-4F91-B79B-BFBCBBECDFBF}"
listTemplate: "10005"
listUrlDir: "/.../Lists/Publications"
newFormUrl: "https://.../_layouts/15/listform.aspx?PageType=8&ListId=%7B84039793%2D11D3%2D4F91%2DB79B%2DBFBCBBECDFBF%7D&RootFolder="
noGroupCollapse: true
onItemSelectionChangedHandlers: Array[0]
recursiveView: false
rootFolder: ""
rootFolderForDisplay: null
serverUrl: null
verEnabled: 0
view: "{E32F4ECF-BB37-4BB0-9230-3654E118656C}"
viewTitle: ""
wpq: "WPQ2"
a {listBaseType: 0, listTemplate: "10005", listName: "{819E929E-B75E-42C8-B58C-2DFFAE3EB240}", view: "{0F2E8B54-D526-4168-AEBB-1C3386AD0686}", listUrlDir: "/.../Lists/Infos"…}
a {listBaseType: 0, listTemplate: "10003", listName: "{CBD5C25C-2853-4612-82CC-FC4893F61D38}", view: "{EEA03F33-C498-4769-9C8B-9EC87E07208F}", listUrlDir: "/.../Lists/Actualites"…}

Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog Viadeo Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog Twitter Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog Google Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog Facebook Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog Digg Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog Delicious Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog MySpace Envoyer le billet « Trouver le BaseViewID d'une vue pour attacher son JSLink » dans le blog Yahoo

Mis à jour 09/09/2018 à 15h17 par LittleWhite (Coloration du code)

Catégories
JavaScript

Commentaires