如何在 Jquery / Datatables 中打印 [关闭]

Posted

技术标签:

【中文标题】如何在 Jquery / Datatables 中打印 [关闭]【英文标题】:How print in Jquery / Datatables [closed] 【发布时间】:2019-07-05 00:48:30 【问题描述】:

我有一个包含 5 列的表格,其中包含以下名称:

姓名 姓氏 年龄 电子邮件 动作

但我只想打印 5 个中的 4 个,所以.. 我想打印姓名、姓氏、年龄和电子邮件,但是当我在 datatables.net 上找到一个功能时,我没有找到如何在里面设置一个类TH 用于打印我所期望的列,对不起我的广告英语

(function(f)"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(e)return f(e,window,document)):"object"===typeof exports?module.exports=function(e,c)e||(e=window);if(!c||!c.fn.dataTable)c=require("datatables.net")(e,c).$;c.fn.dataTable.Buttons||require("datatables.net-buttons")(e,c);return f(c,e,e.document):f(jQuery,window,document))(function(f,e,c)var i=f.fn.dataTable,h=c.createElement("a");i.ext.buttons.print=className:"buttons-print",
text:function(b)return b.i18n("buttons.print","Imprimir"),action:function(b,c,i,d)var a=c.buttons.exportData(d.exportOptions),k=function(b,a)for(var c="<tr>",d=0,e=b.length;d<e;d++)c+="<"+a+">"+b[d]+"</"+a+">";return c+"</tr>",b='<table class="'+c.table().node().className+'">';d.header&&(b+="<thead>"+k(a.header,"th")+"</thead>");for(var b=b+"<tbody>",l=0,m=a.body.length;l<m;l++)b+=k(a.body[l],"td");b+="</tbody>";d.footer&&a.footer&&(b+="<tfoot>"+k(a.footer,"th")+"</tfoot>");var g=e.open("",""),
a=d.title;"function"===typeof a&&(a=a());-1!==a.indexOf("*")&&(a=a.replace("*",f("title").text()));g.document.close();var j="<title>"+a+"</title>";f("style, link").each(function()var c=j,b=f(this).clone()[0],a;"link"===b.nodeName.toLowerCase()&&(h.href=b.href,a=h.host,-1===a.indexOf("/")&&0!==h.pathname.indexOf("/")&&(a+="/"),b.href=h.protocol+"//"+a+h.pathname+h.search);j=c+b.outerhtml);tryg.document.head.innerHTML=jcatch(n)f(g.document.head).html(j)g.document.body.innerHTML="<h1>"+a+"</h1><div>"+
("function"===typeof d.message?d.message(c,i,d):d.message)+"</div>"+b;d.customize&&d.customize(g);setTimeout(function()d.autoPrint&&(g.print(),g.close()),250),title:"*",message:"",exportOptions:,header:!0,footer:!1,autoPrint:!0,customize:null;return i.Buttons);

【问题讨论】:

你应该更好地格式化你的代码。此外,您可以标记此 jQuery / Datatables。 请不要发布最小化的代码。空格和缩进是可以的(实际上比 OK 更好,它们实际上是必需的),它们使开发和调试很多更容易。 您是否尝试为该列指定一个类并将该类display:none 用于打印? datatables.net/reference/option/columns.className @freedomn-m 我是 Jquery 的新手,我不知道该怎么做 您是否查看了我提供的链接中的示例?你有任何看起来像...dataTable(... 的代码吗?如果您可以提供用于创建表格列的您的代码,那么我们可以快速告诉您需要更改的内容,但如果您无法理解示例,那么您将不会能够理解答案(因为它将与示例完全相同...) 【参考方案1】:

首先,您永远不应该发布最小化的代码 - 它不容易阅读,因此人们很难回答您的问题。这将导致一个负分问题。

数据表非常易于使用,在他们的网站 (datatables.net) 上有很多示例。对于这个特殊问题,请尝试https://datatables.net/examples/basic_init/hidden_columns.html

假设你不做服务器端处理,应该就这么简单:

$(document).ready(function() 
    $('#example').DataTable( 
        "columnDefs": [
            
                "targets": [ 2 ],
                "visible": false,
                "searchable": false
            ,
            
                "targets": [ 3 ],
                "visible": false
            
        ]
     );
 );

根据你的列表,这将打印出来

姓名 姓氏 动作

电子邮件仍可搜索,但年龄不可搜索。

如果您只想删除操作列,如您的问题所示,请尝试以下操作:

$(document).ready(function() 
    $('#example').DataTable( 
        "columnDefs": [
            
                "targets": [ 4 ],
                "visible": false
            
        ]
     );
 );

【讨论】:

谢谢我的人,它有效。很抱歉出现问题。

以上是关于如何在 Jquery / Datatables 中打印 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在DataTables 1.10中使用JQuery DataTables“input”插件

如何在 jQuery DataTables 中添加静态列

如何在 jQuery dataTables 列中添加一些信息

jquery dataTables - 如何在点击事件中提取行数据

jQuery 插件 DataTables:如何突出显示当前搜索文本?

当我从 ajax 发送数据时,如何在 jQuery 中使用 DataTables 对列进行排序?