• 文本内容超长显示省略号,鼠标移上自动显示全部内容(适用于EasyUI DataGrid)


    在日常处理表格时,经常会遇到按正常列宽无法全部显示的超长文本,有时候客户会要求显示成省略号,鼠标移上才显示全部文本。

    本文主要是以EasyUI的DataGrid为案例,介绍省略号的解决方案,其他场景只要能将文本用DIV包裹住,应该都能使用。

    首先在JS中定义一个fomatter函数,将单元格的文本用div包裹住,然后在EasyUI DataGrid的列定义中使用该fomatter函数。

        /**
        * 将单元格用DIV包裹住,指定class,同时将文本赋值给title属性,这样鼠标移上就能显示全部文本.
        */
        function formatterEllipsis(value, row, index){
            if(value){
                return "<div title='" + value + "' class='textEllipsis'>"+value+"</div>";
            }else{
                return '';
            }
        }
    <th data-options="field:'pitemName',350,align:'left',formatter : formatterEllipsis">需要显示省略号的列</th>

    然后在样式中定义一个class,超长自动显示省略号:

        /* 文本超长自动显示省略号 */
        .textEllipsis{
            overflow: hidden;/*不允许滚动条*/
            white-space: nowrap;/*不允许文本换行*/
            text-overflow: ellipsis;/*文本超长显示省略号*/
        }

    此时文本超长已经可以显示省略号了,且鼠标移上之后会自动显示全部文本。(但用户不发选中和复制文本)

    如下还有一个样式,就是当鼠标移上之后,通过改变行高显示全部文本的,用户可以选中和复制。大家可以根据实际需求自行选择加还是不加。

        /* 鼠标移上,改变行高,显示全文class */
        .textEllipsis:hover {
            height: auto; 
            word-break:break-all; 
            white-space: pre-wrap;  
            text-decoration: none;
        }

    该方案有个缺点,就是如果你已经对单元格或者行加了样式,将文本放入div内,可能会破坏原有的样式,请大家使用时注意调整!

  • 相关阅读:
    免费的mail server
    opensuse 11.2/11.3安装vmware server 1.0.10笔记
    cisco IOS 免费下载的地方
    自动打开最快镜像站
    [ZT]MSSQL清空或者压缩日志的方法
    Cisco路由器的安全配置方案[zt]
    CISCO2821系列路由器恢复密码
    RTorrent User Guide
    Asp.Net发送邮件详解
    C#在线生成网页缩略图
  • 原文地址:https://www.cnblogs.com/namelessmyth/p/9161820.html
Copyright © 2020-2023  润新知