如何根据元数据选择列控制隐藏/显示OOTB SharePoint切片?

时间:2018-04-04 13:46:20

标签: office365 sharepoint-online

对于我正在处理的其中一个项目,我使用“推荐链接”列表在网站的着陆页上显示切片。基本上我正在以OOTB Sp Tiles(推荐链接列表)的形式显示大约4-5个文档库链接,当点击它们时,它将转到所需的文档库。

我在推荐链接列表中添加了一个元数据选择列,并将其命名为Stage,它有三个选项:Beginning,Intermediate和Final。

我现在面临的挑战之一是根据阶段列中的更改隐藏某些文档库图块。例如,让我们说如果我将阶段从中间更改为开始或从中间更改为最终,我想隐藏某些文档库图块。不确定这是否可行,因为这是OOTB SharePoint磁贴。

请参阅随附的屏幕截图。根据屏幕截图,我希望根据某个阶段列值查看库图块。如果舞台列设置为“开始”,那么我只想在着陆页上查看DSO文档和FCMarketing InfoDocs库图块并隐藏其他图块。同样,如果舞台设置为最终,那么我只想在拼贴上看到FCCases Docs和Sunflower Corp Docs并隐藏其他人。

我正在使用SharePoint在线/ Office365。如果有人知道这是否可行,请告诉我。谢谢。 Document Library Links Tiles

2 个答案:

答案 0 :(得分:0)

您可以在该列表上设置唯一权限。然后在每个项目上,您可以指定要与之共享项目的人员。当您进入列表(第1个屏幕截图)时,其中一个菜单项是"与"共享。您可以使用它来指定谁应该看到链接。

答案 1 :(得分:0)

对于经典视图,您可以使用CSR根据字段值隐藏切片。

示例脚本

<script type="text/javascript">
        (function () {
            'use strict';

            var overrideCtx = {};
            overrideCtx.Templates = {};
            //OnPostRender call postRenderHandler function.
            overrideCtx.OnPostRender = postRenderHandler;

            // Register the template overrides.
            SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);   

        })();
        function postRenderHandler(ctx) {
            var rows = ctx.ListData.Row;
            //var currentItem = ctx.CurrentItem;               
            //the logic how you render your data.
            for (var i = 0; i < rows.length; i++) {
                var metaDataValue=rows[i]["MetaData"].Label;
                alert(metaDataValue);
                // Get the wpq of the web part. This will be used to identify the node with id
                var wpq = ctx.wpq;
                var linksBody = "#promotedlinksbody_" + wpq;
                // "2" is metedata field value, hardcode for test purpose
                if (metaDataValue !="2") {
                    $(linksBody + ' > .ms-tileview-tile-root:nth-child(' + parseInt(i + 1) + ')').css('display', 'none');                    
                    }
            }

        }
    </script>

referenced thread

示例结果。 enter image description here enter image description here