【问题标题】:Datatables fnUpdate on a row that is out of view due to pagination?数据表 fnUpdate 在由于分页而看不见的行上?
【发布时间】:2015-02-03 15:26:35
【问题描述】:

以下函数适用于我的数据表当前页面上可见的行。如何让它在当前被分页隐藏的行上工作?

var table = $('.datatable').dataTable();
var row = table.fnGetPosition($('#'+data.id).closest('tr')[0]);
var value = table.fnGetData(table.fnGetPosition($('#'+data.id).closest('tr')[0]),11);
if (value == '') {
    value = cid;
} else {
    value = value+','+cid;
}
table.fnUpdate(value, row, 11);

【问题讨论】:

    标签: jquery pagination datatables


    【解决方案1】:

    您可以使用 fnGetNodes() 来实现这一点,这是对文档 https://datatables.net/api 的参考

    这是一个关于小提琴的例子http://jsfiddle.net/mxfvLjnb/

    我把代码放在这里只是为了更好的参考

    var oTable = $('#example').dataTable({"sPaginationType": "full_numbers"});
    
    var rows = oTable.fnGetNodes();
    for(var i=0;i<rows.length;i++)
    {
        oTable.fnUpdate('X', rows[i], 4);
    }
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      由于 DataTables 1.10+ 可能不支持 API 登录页面本身上的 fnGetNodes() 作为 mentioned,现在您可以使用 rows().nodes()

      要更新特定行,您可以使用row-selector,然后 要更新该特定行的特定单元格,您可以使用cell().data()

      汇总上述修改后,您的示例代码将更改为以下内容:

      //Notice the 'd' replaced by 'D' in dataTable() for Datatables v1.10+
      var table = $('#example').DataTable();
      var row = table.row('#' + data.id).node();
      var value = table.cell(row, 11).data();
      
      if (value == '') {
        value = cid;
      }
      else {
        value += ',' + cid;
      }
      table.cell(row, 11).data(value).draw();
      

      【讨论】:

        猜你喜欢
        • 2021-07-14
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        • 2023-03-14
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 2018-07-29
        相关资源
        最近更新 更多