Datatables通过某列元素操作获取该行数据

来源:互联网 发布:坐标系平移变换矩阵 编辑:程序博客网 时间:2024/06/05 03:20

需求是这样的:通过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;//得到车间名称          }  
阅读全文
0 0