SlideShare una empresa de Scribd logo
1 de 44
Using JSLink & Display Templates with List View Web Parts
Presented by Paul Hunt

SharePoint Saturday UK - 2013
Who Am I?
• SharePoint Architect for Trinity
Expert Systems
• Co-organiser of SUGUK London
Region
• Member of the SharePoint
community since 2007
• In my spare time I’m a
woodturner, making Pots, Pens
and artistic pieces!

• Paul Hunt
• Twitter: @Cimares
Thanks to our Sponsors

Copyright © Trinity

3
SharePoint User Group UK - SUGUK
• Established in 2006
• Now in it’s seventh year!
• Local user groups in each major
region of the UK
• Over 9000 members.
• The largest SharePoint user group
in the world!

Visit the stand in the exhibition stall
Or go to www.suguk.org!

SUGUK
SharePoint User Group UK
What is this session all about?
• The List View Web Part
Who’s this session for?
• Primarily First/Second tier developers
– ITPros who customised 2010 list views in SPD
– ITPros that used to write their own XSLT in SP2010
– Developers that want to know what's available before opening VS2012

• On Premises or Office 365 Deployments
• Might not be ideal for someone who isn’t comfortable with
JavaScript, HTML and CSS.
– Though if you used to play in SPD 2010 you’re halfway there!
– If you want to know what's achievable without deployed solutions
What did we used to do?
• We used SPD and the Design View
– We did conditional formatting
– Played with colours
– Injected Hyperlinks
What did we used to do?
• But
– No design view anymore!
What did we used to do?
• We used XSLT Overrides (Still exist, but deprecated!)
What did we used to do?
• We used XSLT Overrides (Still exist, but deprecated!)
– Which took boring list data views
What did we used to do?
• We used XSLT Overrides (Still exist, but deprecated!)
– And transformed them into visual representations
What did we used to do?
• We used custom code solutions (We still can!)
– Custom CAML Rendering Templates
– Custom List Views
– Custom Web Parts

• All bring additional headaches
So why the focus on Client Side Rendering?
So why the focus on Client Side Rendering?
• It’s client side, moving the impact of customisations off of the
web server and onto the often powerful and under utilised
client machine

SETI@Home

Folding@Home
So why the focus on Client Side Rendering?
• It’s client side, moving the impact of customisations off of the
web server and onto the often powerful and under utilised
client machine

• Some client machines may struggle with heavy Javascript loads!
Specifically why JavaScript, HTML and CSS?
•
•
•
•
•

It’s easier to develop..
Much simpler than XSLT
Certainly easier to troubleshoot than XSLT
Likely to have the skills in house
Cross-platform (ish!)
– Some frameworks such as jQuery help with this
Exactly what is a Display Template?
• A small piece of JavaScript code that is called by the browser
AFTER the page has been delivered.
• They are prolific in SharePoint 2013
– Some examples
•
•
•
•
•
•

Search Results
Field Rendering
Search Refiners
List Forms
List views
eDiscovery
We’re just looking at:• Field Rendering Display Templates
– These provide the ability to override the rendering of a single field in a list
view

• List View Display Templates
– These provide the ability to override the rendering of an entire view
Anatomy of a List View Display Template
• Define a Function to register the Display Template
• Define the Function called by the Display Template for each
item.
• Call the register function
Anatomy of a List View Display Template
• Define a Function to register the Display Template

For a list of template types see - http://bit.ly/169AbS9
Anatomy of a List View Display Template
• Define the Function called by the Display Template

• Note the use of ctx.CurrentItem.Title
– Any field in the view can be obtained this way
– You must use the internal name
• Obtained from the edit column screen
Anatomy of a List View Display Template
• Call the function we defined when the page loads.
Anatomy of a Field Rendering Display Template
• All that really changes is the override set-up

• This time there are no headers/footers
• We only specify the Base View ID/Field Name
Anatomy of a Field Rendering Display Template
• The render function is similar to the list view
How do we use them with List Views?
• First we need to upload/create them in the MasterPage
gallery
How do we use them with List Views?
• Set some metadata
How do we use them with List Views?
• Add a link into the JSLink on the web part
• Note the ~token in use
–
–
–
–
–

~sitecollection
~site
~layouts
~sitecollectionlayouts
~sitelayouts

• You can have multiple JSLinks
– Join them with |
Adding JSLink Demo
How do we troubleshoot?
• IE Developers Toolbar (Other debuggers exist!)
How do we troubleshoot?
• Fiddler – HTTP Proxy
How do we troubleshoot?
• Fiddler – HTTP Proxy
Troubleshooting in IE with the F12 Dashboard

http://bit.ly/12kMPvr
There has to be a catch?
• Minimal Download Strategy
• Multiple list views on a page
• Changing SharePoint functionality
There has to be a catch?
• Minimal Download Strategy
– Our display templates work on page load
– But fail during a refresh.
– This is because our JavaScript doesn’t get called a second time

• Two workarounds!
• Turn off the Minimal Download Feature in each Web
• Include the relevant JavaScript in your Display Template code
There has to be a catch?
• Multiple list views on a page
– Because of the way Display Templates are registered, it’s not possible to have
two on the page if the list templates are the same.
(E.g. Custom TemplateType = 100)
– There is a workaround though published on my blog
– http://bit.ly/136e0e3
There has to be a catch?
• Changing/Breaking SharePoint functionality
– For example, overriding the Tasks view breaks SharePoint rendering.
– This is fixed in the earlier Field demo with a couple of lines of JavaScript.
Page lifecycle
• SharePoint outputs JSLink in the Header of the page
– This registers our Display Template
Page lifecycle
• SharePoint LVWP outputs the list data into the page
– JSON Object Format
Page lifecycle
• And finally after setting things up
– Calls the RenderListView() function for the web part.

• Which in turn:
– Calls the GetTemplates()
Page lifecycle
• Which compares the Context object to the list of registered
overrides
• And if everything is in place, our
override wins!
Case Study Demos
Questions?
Call to Action!
• Take a look at these sites for more detailed info
• Wes Preston – JS Link a primer - http://bit.ly/102fcNa
• Martin Hatch – JSLink 7 part series - http://bit.ly/Hh5zFk
• My blog – Solving the multiple list view issue http://bit.ly/136e0e3

43
Thanks for listening! – Don’t forget SharePint!
• SHARE·PINT: [SHAIR-PAHYNT]
Noun
1. An assembly or meeting in relation to Microsoft
SharePoint, accompanied with an alcoholic beverage.

Más contenido relacionado

La actualidad más candente

How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3
Ryan McIntyre
 
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConDeep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
SPTechCon
 

La actualidad más candente (20)

Transform SharePoint List Forms with HTML and CSS
Transform SharePoint List Forms with HTML and CSSTransform SharePoint List Forms with HTML and CSS
Transform SharePoint List Forms with HTML and CSS
 
Branding SharePoint 2013
Branding SharePoint 2013Branding SharePoint 2013
Branding SharePoint 2013
 
O365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side RenderingO365 Saturday - Deepdive SharePoint Client Side Rendering
O365 Saturday - Deepdive SharePoint Client Side Rendering
 
How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3
 
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConDeep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
 
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
ECS 19 Bert Jansen - Taking your SharePoint to the next level – Transforming ...
 
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
 
2013 SPFest - Customizing Sites and Pages in SharePoint 2013
2013 SPFest - Customizing Sites and Pages in SharePoint 20132013 SPFest - Customizing Sites and Pages in SharePoint 2013
2013 SPFest - Customizing Sites and Pages in SharePoint 2013
 
SharePoint Branding From Start to Finish
SharePoint Branding From Start to FinishSharePoint Branding From Start to Finish
SharePoint Branding From Start to Finish
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form Usability
 
A Power User's Intro to jQuery Awesomeness in SharePoint
A Power User's Intro to jQuery Awesomeness in SharePointA Power User's Intro to jQuery Awesomeness in SharePoint
A Power User's Intro to jQuery Awesomeness in SharePoint
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with Bootstrap
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 
Enhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web DesignEnhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web Design
 
Integrating Search Driven Content in SharePoint 2013/2016/O365
Integrating Search Driven Content in SharePoint 2013/2016/O365Integrating Search Driven Content in SharePoint 2013/2016/O365
Integrating Search Driven Content in SharePoint 2013/2016/O365
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
 
Style guide for share point 2013 branding
Style guide for share point 2013 brandingStyle guide for share point 2013 branding
Style guide for share point 2013 branding
 
Content query web part – get it all in one place and style it!
Content query web part – get it all in one place and style it!Content query web part – get it all in one place and style it!
Content query web part – get it all in one place and style it!
 

Similar a Using js link and display templates

SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
BIWUG
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore Solutions
Thomas Eldblom
 

Similar a Using js link and display templates (20)

SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
 
Spsbe using js-linkanddisplaytemplates
Spsbe   using js-linkanddisplaytemplatesSpsbe   using js-linkanddisplaytemplates
Spsbe using js-linkanddisplaytemplates
 
JSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyJSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday Jersey
 
SXA in action
SXA in actionSXA in action
SXA in action
 
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
 
Advanced Site Studio Class, June 18, 2012
Advanced Site Studio Class, June 18, 2012Advanced Site Studio Class, June 18, 2012
Advanced Site Studio Class, June 18, 2012
 
Maintainable Sitecore Solutions
Maintainable Sitecore SolutionsMaintainable Sitecore Solutions
Maintainable Sitecore Solutions
 
Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
 
Sitecore sxa best practices and secrets 29th june 2021
Sitecore sxa best practices and secrets   29th june 2021Sitecore sxa best practices and secrets   29th june 2021
Sitecore sxa best practices and secrets 29th june 2021
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
Tridion Content Broker - how and why we are using it at the RSPB (2007)
Tridion Content Broker - how and why we are using it at the RSPB (2007)Tridion Content Broker - how and why we are using it at the RSPB (2007)
Tridion Content Broker - how and why we are using it at the RSPB (2007)
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
 
Drew madelung sp designer workflows - sp-biz
Drew madelung   sp designer workflows - sp-bizDrew madelung   sp designer workflows - sp-biz
Drew madelung sp designer workflows - sp-biz
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrived
 
Sitecore mvc
Sitecore mvcSitecore mvc
Sitecore mvc
 
Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI Presentation
 
SPSBE building an faq for end users
SPSBE building an faq for end usersSPSBE building an faq for end users
SPSBE building an faq for end users
 
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
 

Más de Paul Hunt

Más de Paul Hunt (10)

Exploring conditional access to content stored in Office 365 - SPS Helsinki
Exploring conditional access to content stored in Office 365 - SPS HelsinkiExploring conditional access to content stored in Office 365 - SPS Helsinki
Exploring conditional access to content stored in Office 365 - SPS Helsinki
 
Exploring conditional access to content stored in office 365 spsce
Exploring conditional access to content stored in office 365   spsceExploring conditional access to content stored in office 365   spsce
Exploring conditional access to content stored in office 365 spsce
 
Exploring conditional access to content stored in Office 365
Exploring conditional access to content stored in Office 365Exploring conditional access to content stored in Office 365
Exploring conditional access to content stored in Office 365
 
What do you mean 90 days isnt enough
What do you mean 90 days isnt enoughWhat do you mean 90 days isnt enough
What do you mean 90 days isnt enough
 
Spsnl18 exploring identity management options in office 365
Spsnl18   exploring identity management options in office 365Spsnl18   exploring identity management options in office 365
Spsnl18 exploring identity management options in office 365
 
Spunite exploring identity management options in office 365
Spunite   exploring identity management options in office 365Spunite   exploring identity management options in office 365
Spunite exploring identity management options in office 365
 
Making auditing great again! Office 365
Making auditing great again! Office 365Making auditing great again! Office 365
Making auditing great again! Office 365
 
#SPSLondon - Session 1 - Building an faq for end users
#SPSLondon - Session 1 - Building an faq for end users#SPSLondon - Session 1 - Building an faq for end users
#SPSLondon - Session 1 - Building an faq for end users
 
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
 
Iw411 migrating content by search from 2010 into 2013 - minified
Iw411   migrating content by search from 2010 into 2013 - minifiedIw411   migrating content by search from 2010 into 2013 - minified
Iw411 migrating content by search from 2010 into 2013 - minified
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Using js link and display templates

  • 1. Using JSLink & Display Templates with List View Web Parts Presented by Paul Hunt SharePoint Saturday UK - 2013
  • 2. Who Am I? • SharePoint Architect for Trinity Expert Systems • Co-organiser of SUGUK London Region • Member of the SharePoint community since 2007 • In my spare time I’m a woodturner, making Pots, Pens and artistic pieces! • Paul Hunt • Twitter: @Cimares
  • 3. Thanks to our Sponsors Copyright © Trinity 3
  • 4. SharePoint User Group UK - SUGUK • Established in 2006 • Now in it’s seventh year! • Local user groups in each major region of the UK • Over 9000 members. • The largest SharePoint user group in the world! Visit the stand in the exhibition stall Or go to www.suguk.org! SUGUK SharePoint User Group UK
  • 5. What is this session all about? • The List View Web Part
  • 6. Who’s this session for? • Primarily First/Second tier developers – ITPros who customised 2010 list views in SPD – ITPros that used to write their own XSLT in SP2010 – Developers that want to know what's available before opening VS2012 • On Premises or Office 365 Deployments • Might not be ideal for someone who isn’t comfortable with JavaScript, HTML and CSS. – Though if you used to play in SPD 2010 you’re halfway there! – If you want to know what's achievable without deployed solutions
  • 7. What did we used to do? • We used SPD and the Design View – We did conditional formatting – Played with colours – Injected Hyperlinks
  • 8. What did we used to do? • But – No design view anymore!
  • 9. What did we used to do? • We used XSLT Overrides (Still exist, but deprecated!)
  • 10. What did we used to do? • We used XSLT Overrides (Still exist, but deprecated!) – Which took boring list data views
  • 11. What did we used to do? • We used XSLT Overrides (Still exist, but deprecated!) – And transformed them into visual representations
  • 12. What did we used to do? • We used custom code solutions (We still can!) – Custom CAML Rendering Templates – Custom List Views – Custom Web Parts • All bring additional headaches
  • 13. So why the focus on Client Side Rendering?
  • 14. So why the focus on Client Side Rendering? • It’s client side, moving the impact of customisations off of the web server and onto the often powerful and under utilised client machine SETI@Home Folding@Home
  • 15. So why the focus on Client Side Rendering? • It’s client side, moving the impact of customisations off of the web server and onto the often powerful and under utilised client machine • Some client machines may struggle with heavy Javascript loads!
  • 16. Specifically why JavaScript, HTML and CSS? • • • • • It’s easier to develop.. Much simpler than XSLT Certainly easier to troubleshoot than XSLT Likely to have the skills in house Cross-platform (ish!) – Some frameworks such as jQuery help with this
  • 17. Exactly what is a Display Template? • A small piece of JavaScript code that is called by the browser AFTER the page has been delivered. • They are prolific in SharePoint 2013 – Some examples • • • • • • Search Results Field Rendering Search Refiners List Forms List views eDiscovery
  • 18. We’re just looking at:• Field Rendering Display Templates – These provide the ability to override the rendering of a single field in a list view • List View Display Templates – These provide the ability to override the rendering of an entire view
  • 19. Anatomy of a List View Display Template • Define a Function to register the Display Template • Define the Function called by the Display Template for each item. • Call the register function
  • 20. Anatomy of a List View Display Template • Define a Function to register the Display Template For a list of template types see - http://bit.ly/169AbS9
  • 21. Anatomy of a List View Display Template • Define the Function called by the Display Template • Note the use of ctx.CurrentItem.Title – Any field in the view can be obtained this way – You must use the internal name • Obtained from the edit column screen
  • 22. Anatomy of a List View Display Template • Call the function we defined when the page loads.
  • 23. Anatomy of a Field Rendering Display Template • All that really changes is the override set-up • This time there are no headers/footers • We only specify the Base View ID/Field Name
  • 24. Anatomy of a Field Rendering Display Template • The render function is similar to the list view
  • 25. How do we use them with List Views? • First we need to upload/create them in the MasterPage gallery
  • 26. How do we use them with List Views? • Set some metadata
  • 27. How do we use them with List Views? • Add a link into the JSLink on the web part • Note the ~token in use – – – – – ~sitecollection ~site ~layouts ~sitecollectionlayouts ~sitelayouts • You can have multiple JSLinks – Join them with |
  • 29. How do we troubleshoot? • IE Developers Toolbar (Other debuggers exist!)
  • 30. How do we troubleshoot? • Fiddler – HTTP Proxy
  • 31. How do we troubleshoot? • Fiddler – HTTP Proxy
  • 32. Troubleshooting in IE with the F12 Dashboard http://bit.ly/12kMPvr
  • 33. There has to be a catch? • Minimal Download Strategy • Multiple list views on a page • Changing SharePoint functionality
  • 34. There has to be a catch? • Minimal Download Strategy – Our display templates work on page load – But fail during a refresh. – This is because our JavaScript doesn’t get called a second time • Two workarounds! • Turn off the Minimal Download Feature in each Web • Include the relevant JavaScript in your Display Template code
  • 35. There has to be a catch? • Multiple list views on a page – Because of the way Display Templates are registered, it’s not possible to have two on the page if the list templates are the same. (E.g. Custom TemplateType = 100) – There is a workaround though published on my blog – http://bit.ly/136e0e3
  • 36. There has to be a catch? • Changing/Breaking SharePoint functionality – For example, overriding the Tasks view breaks SharePoint rendering. – This is fixed in the earlier Field demo with a couple of lines of JavaScript.
  • 37. Page lifecycle • SharePoint outputs JSLink in the Header of the page – This registers our Display Template
  • 38. Page lifecycle • SharePoint LVWP outputs the list data into the page – JSON Object Format
  • 39. Page lifecycle • And finally after setting things up – Calls the RenderListView() function for the web part. • Which in turn: – Calls the GetTemplates()
  • 40. Page lifecycle • Which compares the Context object to the list of registered overrides • And if everything is in place, our override wins!
  • 43. Call to Action! • Take a look at these sites for more detailed info • Wes Preston – JS Link a primer - http://bit.ly/102fcNa • Martin Hatch – JSLink 7 part series - http://bit.ly/Hh5zFk • My blog – Solving the multiple list view issue http://bit.ly/136e0e3 43
  • 44. Thanks for listening! – Don’t forget SharePint! • SHARE·PINT: [SHAIR-PAHYNT] Noun 1. An assembly or meeting in relation to Microsoft SharePoint, accompanied with an alcoholic beverage.

Notas del editor

  1. This session is all about dropping a list view web part on the page and doing something visually with it using the tools that Microsoft provide and no serious custom development.
  2. We’re targeting First/Second Tier developers.. That’s the UI and Client side to you and me..You’ll need to know Javascript, HTML and CSS..But not a lot, start small and work up!
  3. Primarily we worked server sideThough Marc Anderson and others championed what could be done client side with jQuery and similar
  4. The design view has now gone.Lots of discussion as to why.Can’t now use (in visual design mode):-the conditional format builderThe xPath expression builderWeb part connectionsWeb Part filters
  5. We did use XSLT over ridesDifficult to troubleshootA single wrong character could break the rendering! Very difficult to troubleshoot without access to the ULS logs (Or even with the logs!)
  6. This example is a project status dashboard, fed from a project list.
  7. But these bring their own headaches.Deployment,SupportUpgrades
  8. In my opinion it’s about the cloud.MS wants to offer a platform that’sscalable.Moving the customisations as far away from that platform makes sense..
  9. A large majority of Business and Home PC’s spend a massive amount of their time doing nothing.Several large Grid computing projects rely on thisNotably Folding@Home looking at causes of Cancer and other Degenerative diseases.And Seti@Home searching Radio Telescope signals for signs of ET!
  10. Warning though, Some small format PC’s may struggle.I’ve had personal issues with ARM processor based systems
  11. Cross-platform: Some browsers have different ways of handling some javascript.The use of jQuery helps alleviate this
  12. BaseViewIDListTemplateTypeLoaded when the page is first processed.
  13. This function is called for EACH item the list will render. E.g. If you have a list view with 20 items, this function will run 20 times and each time ctx.CurrentItem will the next item in the list.Note: Fields called in the view MUST be selected when the view is created.If time cover polluting the global namespace.
  14. We only base this on BaseViewID.The field name is specified in the Templates collectionNote: Wer’re only affecting the View mode here.. But you can do Edit too.
  15. .
  16. You can do this directly through the UI,Or in SPD 2013
  17. You can define List Views with JSLinks, or add them through PowerShellTokens courtesy of Martin Hatch’s blog~site – reference to the current SharePoint site (or “Web”)~sitecollection – reference to the current SharePoint site collection (or “Site”)~layouts – version specific reference to the web application Layouts folder (so it will automatically swap out /_layouts/14 or /_layouts/15 for you)~sitecollectionlayouts – reference to the layouts folder in the current site collection (e.g. /sites/team/_layouts/15)~sitelayouts – reference to the layouts folder in the current site (e.g. /sites/teams/subsite/_layouts/15)
  18. Setting up the Field render on SPSUK Tasks.~sitecollection/_catalogs/masterpage/Display Templates/csr_ovr_PercentComplete_Field.js
  19. Open the Developers Toolbar with F12Switch to the Script tagSelect the drop down near the “Start Debugging” buttonSelect our template fileStart Debugging
  20. In the normal flow, IE makes the request directly to SharePoint.Fiddler injects itself as a proxy between your browser requests and the outbound network connection.This allows us to inspect and event alter the requests and responses being made
  21. Using the demo we created earlier, we’ll show how to trap the code and step through.http://msdn.microsoft.com/library/ie/bg182326(v=vs.85) The F12 developer tools site.
  22. If time, demo on site.
  23. Martin Hatches blog has more details on some of the other breaking issues with Display templates.
  24. If plenty of time (show the multiple list view issues)About my teamWeekly reportProject progressBlockbustersCountdown?