Checkbox Datatable无法将excel中更新的复选框值导出为0或1,始终仅显示最初选中的值

Checkbox Datatable无法将excel中更新的复选框值导出为0或1,始终仅显示最初选中的值,checkbox,datatable,datatables,datatables-1.10,tabletools,Checkbox,Datatable,Datatables,Datatables 1.10,Tabletools,尝试下载Datatables,最初可以为复选框(其中一个列字段“已验证”)获取0或1个值,但在切换复选框并导出为excel时,无法检索最新的复选框值。 最初,我在数据库中仅将第二个复选框设置为未勾选,以便在excel工作表中正确地将其值导出为0,但当我更改值并再次导出时,它不会获取更新的最新值,正如您在所附的快照中所看到的那样 var j=0; $(document).ready(function(){ var table; function Xhr(id)

尝试下载Datatables,最初可以为复选框(其中一个列字段“已验证”)获取0或1个值,但在切换复选框并导出为excel时,无法检索最新的复选框值。 最初,我在数据库中仅将第二个复选框设置为未勾选,以便在excel工作表中正确地将其值导出为0,但当我更改值并再次导出时,它不会获取更新的最新值,正如您在所附的快照中所看到的那样

   var j=0;
    $(document).ready(function(){

    var table;
    function Xhr(id)
    {
    return $.ajax(
    {type:"GET",
    url:'http://localhost:8080/SSRSReports/v1/test',
    dataType:'json',
    cache:false,
    async:true,

    beforeSend:
    function(){$(id).append('<img src="images/spinner.gif" class="spin"/>');
    }})
    .always(function(){
    $(id).find('.spin').fadeOut(4000,function(){$(this).remove();
    });
    })
    .fail(function()
    {console.log("There was a problem while trying to get data at "+d);});
    }
    var radio=[];
    var j=0;
    $(document).ready(function(){
    	Xhr('#report').done(function (json) {
    		console.log(json);
    		var x;
    	
    			jQuery_2_2_2.each(json, function (i, report) {
    		
    				radio.fill(0);
    				if(report.testSampleOutOfStabilityIndt==1)
    					{
    						x += '<tr><td>' + report.studyId + '</td>';
    					    x += '<td>' + report.country + '</td>';
    					    x += '<td>' + report.investigatorName + '</td>';
    					    x += '<td>' + report.screenId + '</td>';
    						x += '<td>' + report.subjectId + '</td>';
    						x += '<td>' + report.subjectInitials + '</td>';
    						x += '<td>' + report.requisitionNumber + '</td>';
    						x += '<td>' + report.testName + '</td>';
    						x += '<td>' + report.visitName + '</td>';
    						x += '<td>' + report.collectionDate + '</td>';
    						x += '<td>' + report.collectionTime + '</td>';
    						x += '<td>' + report.resultDate + '</td>';
    						x += '<td>' + report.resultTime + '</td>';
    						x += '<td>' + report.minutesToResult + '</td>';
    						x += '<td>' + report.minutesSampleStabilityLimit + '</td>';
    						x += '<td>' + report.testResult + '</td>';
    						x += '<td>' + report.daysSampleStabilityLimit + '</td>';
    						x += '<td>' + report.daysToResult + '</td>';
    						x += '<td>' + report.testSampleOutOfStabilityIndt + '</td>';
    					//console.log(i);
    						if(j==1)
    							{
    							x += '<td id="verified'+j+'"><input id="verified'+j+'" style="font-size:xx-small;" type="checkbox" onclick="handleChange(this)"></td></tr>';
    							}
    						else{
    							x += '<td id="verified'+j+'"><input id="verified'+j+'" style="font-size:xx-small;" type="checkbox" checked onclick="handleChange(this)"></td></tr>';
    						}
    						j++;
    					
    					}
    				
    			});//.each
    			jQuery_2_2_2('#reportbody').append(x);
    			
    			
    			table=jQuery_2_2_2('#reporttable').DataTable({
    				"stateSave": true,
    				checkboxRefresh:true,
    				dom: 'Bfrtip',
    			    buttons: [
    			    	{
    			    	extend: 'excel',
    		            exportOptions: {
    		                orthogonal: 'sort'
    		            }
    		        }        
    		    ],
    		    columnDefs: [{
    		       targets:[19],
    		       render: function(data, type, row, meta){
    		          if(type === 'sort'){
    		             var $input = $(data).find('input[type="checkbox"]').addBack();
    		             data = ($input.prop('checked')) ? "1" : "0";
    		          }

    		          return data;    
    		       }
    		    }],
    			     
    			    
    			    scrollY:        true,
    			    scrollX:        true,
    			    scrollCollapse: true,
    			    fixedColumns:   {
    			        leftColumns: 1,
    			        rightColumns: 1
    			    }
    			
    			    });//.datatable

    		});//.done
    		
    	
    		
    });//document.ready
    var k;

    function handleChange(e){
[enter image description here][1]
       $(e).attr('checked', !($(e).attr('checked')));  
    	console.log(e.id);
    	
    	

    	
    }

报告
var jQuery_2_2_2=$.noConflict(true);
报告

研究 国家 调查员姓名 屏幕ID 主体 主语首字母 请购单编号 测试名称 访客姓名 收款日期 收集时间 结果与日期 结果时间 分钟测试结果 分钟\样品\稳定性\极限 测试结果 天数\样品\稳定性\限值 日存储结果 尝一尝样品,尝一尝稳定性指数 已证实的 研究 国家 调查员姓名 屏幕ID 主体 主语首字母 请购单编号 测试名称 访客姓名 收款日期 收集时间 结果与日期 结果时间 分钟测试结果 分钟\样品\稳定性\极限 测试结果 天数\样品\稳定性\限值 日存储结果 尝一尝样品,尝一尝稳定性指数 已证实的
再次尝试,并在导出时基本上更改了格式。还将复选框数据更改为手动更改

$(document).ready(function() {

$('.checkbox').click(function() {
    debugger
    if ($(this).data("checked") === 0) {
        $(this).data("checked", "1")
    } else {
        $(this).data("checked", "0")
    }
});
$('#example').DataTable({
    dom: 'Bfrtip',
    buttons: [{
            extend: 'copyHtml5',
            exportOptions: {
                orthogonal: 'export'
            }
        },
        {
            extend: 'excelHtml5',
            exportOptions: {
                orthogonal: 'export',
                format: {
                    body: function(data, row, column, node) {
                        // Strip $ from salary column to make it numeric
                        debugger;
                        if (column === 0) {
                            data = $(node).children().data("checked");
                        }
                        return data;
                    }
                }
            }
        },
        {
            extend: 'pdfHtml5',
            exportOptions: {
                orthogonal: 'export'
            }
        }
    ]

});
}))


这是相同的小提琴

当您将状态更改为“已验证”时,此数据最初是否保存到DB?如果不是,这是为了什么?不,我现在只在客户端做所有事情。授权用户应该能够更改“已验证”复选框,然后在excel中下载有关已验证状态的最新条目,而不是暂时保存回db。