![](/img/trans.png)
[英]Datatables / TableTools: format data as text when exporting to Excel
[英]Exporting checkbox data to excel using jQuery datatables
我有一个<ASP:GridView>
其中有几列具有从SQL Server返回的布尔值。 我正在使用datatables插件看起来不错,但是当我将数据导出到Excel时,除了显示为空的bool
值之外,其他所有文件都导出到Excel。
这是我简单的jQuery:
$(document).ready(function () {
$('#<%=GridView1.ClientID%>').DataTable({
dom: 'Bfrtip',
buttons: [
'excel'
]
});
});
我已经尝试按照链接https://m.datatables.net/forums/discussion/45691/excelhtml5-how-to-export-checkbox-data中所述进行操作,但没有成功。
尝试代码1
columnDefs: [
{
"render": function (data, type, row) {
var i = $(data).prop("checked")===true?"Yes":"No";
return i;
},
"targets": [1,2,13,16,17,19]
}
]
即使bool col值为true,它也会显示“ NO”。
尝试过的代码2
buttons: [
{
extend: 'excel',
exportOptions: { orthogonal: 'export' }
}
]
尝试代码3
buttons: [
{
extend: 'excelHtml5',
exportOptions: { orthogonal: 'export' }
}
]
任何帮助,在此先感谢。
我从未使用过DataTable
插件,但我们是开发人员,所以让我们找出问题所在。 您创建了一个JSFiddle ,HTML中的重要部分是:
<td>72</td>
<td><span class="aspNetDisabled" title="Is Credit"><input id="CentreContent_GridView1_ctl00_0" type="checkbox" name="ctl00$CentreContent$GridView1$ctl02$ctl00" disabled="disabled" /></span></td>
<td><span class="aspNetDisabled" title="Is Quotation"><input id="CentreContent_GridView1_ctl01_0" type="checkbox" name="ctl00$CentreContent$GridView1$ctl02$ctl01" checked="checked" disabled="disabled" /></span></td>
您有3个td
标签,所以您有3列。 如果您要提供render
函数,这是该插件的文档所说的内容:
如果给出了一个函数,则只要DataTables需要获取列中某个单元格的数据,就会执行该函数。
这是您的回调函数:
function (data, type, row){
var i = $(data).prop("checked")===true?"Yes":"No";
return i;
}
因此,基本上它将使用三个参数调用您的函数。 (您的问题)我们感兴趣的参数是data
。 data
参数将包含该单元格的html,因此您可以根据其内容进行一些决策。 由于您的单元格HTML具有此结构
<td><span><input></span></td>
然后,当您执行$(data)
,JQuery将选择所有HTML,然后查找checked
属性,但显然不起作用。 您必须明确告诉JQuery选择哪个元素,然后查找属性。 因此,您的代码需要像这样:
var $element = $(data).find(':input')
var i;
if ($element && $element.is(':checkbox')) {
i = $element.prop('checked') === true ? "Yes" : "No";
}
else {
// What will you do if not checkbox?
}
现在,我们专门在寻找一个input
元素,它是一个复选框,并检查是否已选中该复选框。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.