Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何截断datatable中的字段数据并添加<;更多选择>;最后查看整个字段数据?_Javascript_Html_Jquery_Datatables - Fatal编程技术网

Javascript 如何截断datatable中的字段数据并添加<;更多选择>;最后查看整个字段数据?

Javascript 如何截断datatable中的字段数据并添加<;更多选择>;最后查看整个字段数据?,javascript,html,jquery,datatables,Javascript,Html,Jquery,Datatables,我正在使用datatable在应用程序中显示报告。 有些栏目有大量数据,我想截断视图,并在末尾添加一个可单击的选项,以便用户可以单击它来查看通话的全部内容 我曾尝试使用省略号渲染来使用子字符串转换数据,但这不是一个可行的解决方案,因为我的表中也有下载选项。如果使用渲染器,下载的报告也会显示截断的格式 请建议我如何实现这一点,因为该表也有下载功能? 下面是相同的示例代码: $(document).ready(function() { $("#TableName").Data

我正在使用datatable在应用程序中显示报告。 有些栏目有大量数据,我想截断视图,并在末尾添加一个可单击的选项,以便用户可以单击它来查看通话的全部内容

我曾尝试使用省略号渲染来使用子字符串转换数据,但这不是一个可行的解决方案,因为我的表中也有下载选项。如果使用渲染器,下载的报告也会显示截断的格式

请建议我如何实现这一点,因为该表也有下载功能?

下面是相同的示例代码:

$(document).ready(function() {
 $("#TableName").Datatable( {
    language: { "search": "Filter"},
    paging: false,
    info: true,
    scrollY:'50px',
    scrollCollapse: true,
    scrollX: false,
    
   });
});

处理这一问题的一种方法是:

  • 创建一个额外的“描述”列,该列包含与原始“描述”列相同的数据

  • 隐藏这个额外的列

  • 对原始(可见)“说明”列应用截断

  • 自定义Excel导出按钮,使其跳过原始的“描述”列(及其可能被截断的数据),只导出隐藏列

  • 示例数据行:

    
    编号yyyy
    S3
    描述又很长。知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。
    描述又很长。知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。
    防火墙操作
    受让人2
    影响2
    
    为方便起见,我将使用DataTables进行文本截断-但如果不适合您,您可以使用任何您喜欢的方法:

    <script type="text/javascript" src="https://cdn.datatables.net/plug-ins/1.10.24/dataRender/ellipsis.js"></script>
    
    较长的文本将显示在数据表中,截断为40个字符

    Excel导出器将跳过可见的“说明”列:
    列:[0、1、3、4、5、6]


    增强显示效果

    您可以增强上述解决方案,以提供一个“更多”按钮,单击该按钮时,将显示全文而不是截断的文本

    该按钮的样式类似于链接,以减少干扰:

    。更多按钮{
    背景:无!重要;
    边界:无;
    填充:0!重要;
    /*可选的*/
    字体系列:arial,无衬线;
    /*输入具有特定于操作系统的字体系列*/
    颜色:#069;
    文字装饰:下划线;
    光标:指针;
    }
    
    然后,列索引2的呈现函数更改为:

    {
    目标:[2],
    呈现:函数(数据、类型、行、元){
    如果(类型==‘显示’){
    如果(数据长度>40){
    返回''+数据.substr(0,38)+''…'+
    “更多”;
    }否则{
    返回数据;
    }
    }否则{
    返回数据;
    }
    }
    },
    
    showMore()
    函数:

    函数showMore(节点,rowId){
    var rowData=$('#TableName').DataTable().rows(rowId.data().toArray()[0];
    var全文=行数据[3];
    $(node.parentNode).text(全文);
    }
    

    这是一个相当基本的功能-除非刷新表格,否则无法重新隐藏文本。

    感谢您分享此快速解决方案,因为我对javascript和jquery不熟悉。不过,这在showmore功能中运行良好。单击“显示更多”按钮时,列文本似乎与下一列数据重叠,而不是换行。