Trouver le BaseViewID d'une vue pour attacher son JSLink
par
, 30/10/2014 à 22h00 (1326 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"…}