zoukankan      html  css  js  c++  java
  • SharePoint 列表视图修改多行文本字段显示长度

      前言

      最近有这么个需求,用户希望在所有项目视图显示多行文本字段,然后,又不希望显示的过场,也就是处理一下长度。

      一开始就想到用js的方式去处理,偶然间发现还可以用jslink,尝试了一下,非常好用,分享给大家。

      完整代码

    // List View - Substring Long String Sample 
    // Muawiyah Shannak , @MuShannak 
     
    (function () { 
     
        // Create object that have the context information about the field that we want to change it's output render  
        var bodyFiledContext = {}; 
        bodyFiledContext.Templates = {}; 
        bodyFiledContext.Templates.Fields = { 
            // Apply the new rendering for Body field on list view 
            "Body": { "View": bodyFiledTemplate } 
        }; 
     
        SPClientTemplates.TemplateManager.RegisterTemplateOverrides(bodyFiledContext); 
     
    })(); 
     
    // This function provides the rendering logic 
    function bodyFiledTemplate(ctx) { 
     
        var bodyValue = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; 
     
        //This regex expression use to delete html tags from the Body field 
        var regex = /(<([^>]+)>)/ig; 
     
        bodyValue = bodyValue.replace(regex, ""); 
     
        var newBodyValue = bodyValue; 
     
        if (bodyValue && bodyValue.length >= 100) 
        { 
            newBodyValue = bodyValue.substring(0, 100) + " ..."; 
        } 
     
        return "<span title='" + bodyValue + "'>" + newBodyValue + "</span>"; 
            
    } 

      后来,用户又希望鼠标点击缩略文档的时候,能显示所有内容,天啊,满足客户需求,毕竟,客户就是上帝!!!

      简单的改了一下默认脚本的return的值,如下:

    return "<div onclick='changeShow(this)'><span style='display:none;'>" + bodyValue + "</span><span style='display:block;'>" + newBodyValue + "</span></div>";

    然后,再加一个切换效果的脚本,如下:

    function changeShow(obj)
    {
    
        var spans = $(obj).find("span");
        if(spans[0].style.display == "none")
        {
            spans[0].style.display = "block";
            spans[1].style.display = "none";
        }
        else
        {
            spans[0].style.display = "none";
            spans[1].style.display = "block";
        }
    }

      这样,就满足用户单击可以切换缩略文本和完整文本的功了。

      运行效果

    附参考链接 https://code.msdn.microsoft.com/office/Client-side-rendering-code-93e7077d

  • 相关阅读:
    【Python 开发】第三篇:python 实用小工具
    【Python 开发】第二篇 :Python安装
    【Linux 运维】 安装PHP工具Composer
    【shell 每日一练6】初始化安装Mysql并修改密码
    【zabbix 监控】第三章 创建主机组和主机
    【Docker】第一篇 Docker的初始化安装部署
    【shell 练习5】编写简单的多级菜单
    【zabbix 监控】第二章 安装测试被监控主机
    【zabbix 监控】第一章 zabbix的安装配置
    1数组和字符串题解
  • 原文地址:https://www.cnblogs.com/jianyus/p/9111693.html
Copyright © 2011-2022 走看看