需求是这样的:通过datatables每行最后一列的”操作”按钮来触发弹出模态框表单,表单中的数据为该行的所有数据。那么首先是要确定该操作按钮为哪一行,即需要在操作触发的方法中传入(直接或间接)行数,然后通过行数来获取该行数据。
法一:
1、Datatables的初始化ajax返回数据中”操作”一列的渲染为` {
"render": function (data, type, full, meta) {
if ($('#IsRightChange').val() == 1) {
return '<button type="button" class="btn btn-primary" onclick="ChangeData('+ meta.row +')">操作</button>';}
else{
return '';
}
}
},`
2、操作按钮触发的函数为下:
function ChangeData(Row)
{
var data= $('#example').DataTable().rows(Row).data()[0];
alert(data.cjname);
}
其中cjname为Datatables返回数据中的其中一列 车间名称 ,对应的,需要什么元素直接在data.ParamterName即可。
3、通过Jquery直接给新的模态框赋值。
(‘#ID’).val(“value”);
或者(‘#ID’).attr(“value”,value); 注意使用attr时对于有的标签是可以进行value的赋值,但是并不一定能够使其text显示。比如textarea标签,使用该attr时可以使其value赋值,但是在页面显示时仍然为空。但是使用.val()进行赋值时,不仅可以使value赋值,也可以text显示出来。
法二:间接的传入行数。
1、
"render": function (data, type, full, meta) {
if ($('#IsRightChange').val() == 1) {
return '<button type="button" class="btn btn-primary" onclick="ChangeData(this)">操作</button>';}
else{
return '';
}
}
},`
2、
function ChangeData(this1){
var Row = $(this1).parents('tr')[0];//通过获取该td所在的tr,即td的父级元素,取出第一列序号元素
var Data = $("#example").dataTable().fnGetData(Row);//得到这一行的json数据
var cjname= aData.cjname;//得到车间名称
}