datatables

>判断是否已经是一个实例

$.fn.dataTable.isDataTable($('#sheet_table_edit'))  // 返回true或者false

>datatables 销毁实例时如有绑定事件需要先clear()再destroy().

if($.fn.dataTable.isDataTable($('#sheet_table_edit'))){
                $('#sheet_table_edit').DataTable().clear();
                $('#sheet_table_edit').DataTable().destroy();
                $('#sheet_table_edit').empty();
            }
>datatables 隐藏某列再显示的话该列在隐藏之前删除的单元格会自动出现,在进行列合并时需要注意. 也可以利用.

$("input[name='_扣分原因_合计行_"+projectLength+"']").parent('td').remove(); // 移除单元格
<pre name="code" class="javascript">table.column(titleLength-2).visible(false); // 隐藏该列
table.column(titleLength-2).visible(true); // 重新显示该列,单元格会自动出现,隐藏列如重复变动需重复删除

 >datatables 列被隐藏时无法通过$选取该列单元格具体内容, 获取行数据可以获取到该行隐藏列单元格的数据(太麻烦), 可以直接将该列的值用隐藏输入框的方式附到其它显示的列上 
 

return data+'<input name="_编号_' + row.lineIndex + '" type="hidden" value="'+data+'">'+
            '<input name="_accentedTerm_' + row.lineIndex + '" type="hidden" value="'+row.is_accented_term+'">'+
            '<input name="_行号_' + row.lineIndex + '" type="hidden" value="'+row.lineNumber+'">';                    
>datatables合并单元格

for(var i=0;i<projectNum.length;i++){
        for(var j=1;j<projectNum[i];j++){
            var index=0.01*j+i;
            $("input[name='_"+i+"_项目_"+index+"']").parent('td').remove();
            $("input[name='_"+i+"_项目分_"+index+"']").parent('td').remove();
        }
        $("input[name='_"+i+"_项目_"+i+"']").parents("td").attr("rowspan",projectNum[i]).css("vertical-align","middle");
        $("input[name='_"+i+"_项目分_"+i+"']").parents('td').attr("rowspan",projectNum[i]).css("vertical-align","middle");
    }

>在modal中重置验证信息不起作用:

$("#type_add_form").data('bootstrapValidator').resetForm(true); //重置验证信息

$(form).bootstrapValidator({
	excluded: [':disabled'],//添加这一行
})
>刷新表格
$('#draft_grid').dataTable().api().ajax.reload();

>序号列

{data : function(data, type, row, meta) {
	return meta.settings._iDisplayStart + meta.row + 1;
},
title : "序号",
width : "50px",
visible : true}
>单选行
fnDrawCallback : function() {
	// 提供选中行支持
	$('#enterprise_grid tbody').on('click', 'tr', function() {
	$("#enterprise_grid input[type='radio']").prop("checked", false);
	$("#enterprise_grid tbody tr").removeClass("selected");
	$(this).toggleClass('selected');
	var ckb = $(this).find("input[type='radio']");
	ckb.prop("checked", "checked" );
});
}
>多选
{
	data : "ck",
	title : '<input id="checkAll"  type="checkbox"/>',
	render : function(data, type, row) { // 模板化列显示内容
		return '<input name="ck" onClick="checkClick(this)" value=' + data + ' type="checkbox"/>';
	},
	width : "3%"
}
// 提供选中行支持
$('#dictionary_grid tbody').on('click', 'tr', function() {
	//添加选中css
	$(this).toggleClass('selected');
	var ckb = $(this).find("input[type='checkbox']");
	// 选中checkBox
	if(ckb.prop("checked") == true){
		ckb.prop("checked",false);
	}else{
		ckb.prop("checked", "checked" );
	}		
});
	
//checkbox全选
$("#checkAll").click(function () {
	if ($(this).prop("checked") == true) {
		$("#dictionary_grid input[type='checkbox']").prop("checked", true);
		$("#dictionary_grid tbody tr").addClass("selected");
	} else {
		$("#dictionary_grid input[type='checkbox']").prop("checked", false);
		$("#dictionary_grid tbody tr").removeClass("selected");
	}
});
//提供多选框点击支持
function checkClick(ck) {
	$($(ck).parent().parent()[0]).toggleClass('selected');
	var e = window.event||arguments.callee.caller.arguments[0];
	if (e && e.stopPropagation) {
		e.stopPropagation();
	} else {
		window.event.cancelBubble = true;
	}
}

>获取选中行

var rows = $("#base_grid").DataTable().rows('.selected').data();
		//验证
		if(rows.length != 1){
			$.alert("success","请选择一条记录!");
			return false;
		}
		var base_id = rows[0].base_id;

>获取所有数据

var table = $('#product_materials_table').DataTable();
	var datas = table.rows().data();
	if(datas.length==0){
		$.alert("warning","请添加原料信息!");
		return false;
	}
	var trs = $("#product_materials_table tbody tr");
	var flag = true;
	$.each(trs,function(index,o){
		var rowdata = table.row( $(o) ).data();
	});









你可能感兴趣的:(datatables)