使用javascript获取Sharepoint列表视图元素的数量

时间:2016-04-08 09:51:58

标签: javascript listview sharepoint view

如何获取特定视图的计数列表项? 我想摆脱pivotControl-overflowDot,所以列表中的所有视图都显示而不点击点。

我有以下代码:

<script>
    function renderHeaderTemplateForDocuments(renderCtx, fRenderHeaderColumnNames){
        var viewData = eval(renderCtx.ListSchema.ViewSelectorPivotMenuOptions);
        ClientPivotControl.prototype.SurfacedPivotCount = 20;   
        return RenderHeaderTemplate(renderCtx, fRenderHeaderColumnNames); 
        var menu = $('ms-pivotControl-overflowDot');
        menu.style.display =  "none";
    }

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
      Templates: {
        Header: renderHeaderTemplateForDocuments
      }
    });
</script>

我不知道元素的数量,我将SurfacedPivotCount设置为20, 但我希望SurfacedPivotCount是动态的,基于视图元素的数量。

谢谢!

1 个答案:

答案 0 :(得分:1)

通过CSR自定义SharePoint列表时,可以确定可用列表视图选项的数量,如下所示:

var viewData = JSON.parse(renderCtx.ListSchema.ViewSelectorPivotMenuOptions);
var numOfViews = viewData.length - 3;  //system menu options such as Create View, Modify View and menu delimiter are exluded  

示例

以下示例演示了如何显示所有可用的列表视图选项

function renderHeaderTemplateForList(renderCtx, fRenderHeaderColumnNames){
    var viewData = JSON.parse(renderCtx.ListSchema.ViewSelectorPivotMenuOptions);
    var numOfViews = viewData.length - 3;  
    ClientPivotControl.prototype.SurfacedPivotCount = numOfViews;   
    return RenderHeaderTemplate(renderCtx, fRenderHeaderColumnNames); //render default Header template
}

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

<强>结果

enter image description here