Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

enter image description here

I have 4 views "All Documents" "Agreements" "Permits" "Deeds" I want to display all 4 of them above my document library but only 3 get displayed and the fourth gets placed in the "..." section. I believe this modification is possible through sharepoint designer, but I was curious if anyone knew how to achieve this through the web environment.

Thank you

share|improve this question

2 Answers 2

up vote 3 down vote accepted

Since you are using SharePoint 2013 I would recommend you to consider the following approach. In SharePoint 2013 was introduced a so called Client Rendering Mode (CSR) which is intended for rendering of List Views and Forms using HTML and JavaScript and which is a default rendering mode.

About View selector menu

As part of CSR ClientPivotControl control (clienttemplates.js) is intended for rendering View selector menu, SurfacedPivotCount property defines the amount of view menu options rendered horizontally (default value is 3)

How to display custom amount of view options for List View using CSR

The following template demonstrates how to override SurfacedPivotCount property in order to display 4 view menu options:

function renderHeaderTemplateForDocuments(renderCtx, fRenderHeaderColumnNames){
    var viewData = eval(renderCtx.ListSchema.ViewSelectorPivotMenuOptions);
    ClientPivotControl.prototype.SurfacedPivotCount = 4;   
    return RenderHeaderTemplate(renderCtx, fRenderHeaderColumnNames); //render default Header template
}

SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
  Templates: {
    Header: renderHeaderTemplateForDocuments
  }
});

How to apply the changes

There are at least two options how to apply the changes:

  1. Using JSLink property of XLV web part
  2. Place JavaScript template on page via Script Editor/Content Editor web parts

Here is how to apply the changes using the second option:

  1. Switch the page (NewForm.aspx) into edit mode
  2. Add Script Editor webpart right below the list view web part.
  3. Put the specified code by wrapping it using script tag code into the Script Editor, for example: <script type="text/javascript">{Template JS code goes here}</script>
  4. Save the page

Result

enter image description here

share|improve this answer
1  
This is exactly what I wanted thank you so much –  jamalsabs Jan 2 at 16:10

I do not think that can be done. It shows the 4th view only once we click on it. (Dynamic HTML)

But I found a workaround.

  1. Go to Edit Page.
  2. Click on Add web part and add a content editor with the links to all 4 views.
  3. Edit list view web part and disable the view selector menu. Also if needed, set tool bar to no tool bar and remove search. (Look where to edit using screenshot)

enter image description here

share|improve this answer
    
Thank you, It seems like such a simple modification I figured there would be a way, but guess not... –  jamalsabs Aug 20 '14 at 17:10
    
These html injection scripts are frustrating to customize –  Christoffel de Gruyter Aug 20 '14 at 20:40

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.