【问题标题】:How can add a row to a DataTable with a dynamic number of cells如何将行添加到具有动态单元格数量的 DataTable
【发布时间】:2012-12-05 12:58:32
【问题描述】:

我有这段代码用于在 DataTable 中创建一个新行,用于在 MVC 内部网中进行内联编辑。

每行有 4 个单元格,两个用于编辑数据,两个用于编辑和删除链接。

此表用于编辑 TestFields 的值、我们数据库中的表、创建新表等。

我们有两个标题,名称和描述,因此有两个单元格。

现在我正在使用相同的代码来做一些完全不同的事情。

标题现在是现有的 TestFields 名称,因此我可以有一个标题或 100 个。

所以我需要能够添加一个包含 x 个单元格的新行,具体取决于我从模型中获得的 TestFields 对象的数量。

这就是我所拥有的

  Name   Description
  --------------------------------
  Name1  Description1    Edit or Save Delete
  Name2  Description3    Edit or Save Delete
  Name1  Description1    Edit or Save Delete

这里我知道我只需要两个单元格 + 编辑/保存/删除链接,所以没问题

我现在需要的新表看起来像

  Name1   Name2   Name3   Name4   Name4 ...   
  --------------------------------
  Value1  Value2  Value3  Value4  Value5   Edit or Save Delete
  Value1  Value2  Value3  Value4  Value5   Edit or Save Delete
  Value1  Value2  Value3  Value4  Value5   Edit or Save Delete

所以这意味着这段代码

var aiNew = oTable.fnAddData(['', '',
                '<a class="edit" href="">Edit</a>', '<a class="delete"

可以

var aiNew = oTable.fnAddData(['',
                '<a class="edit" href="">Edit</a>', '<a class="delete"

var aiNew = oTable.fnAddData(['', '', '', '' ,'' ,'','','','',
                '<a class="edit" href="">Edit</a>', '<a class="delete"

这取决于我拥有的 TestField 的数量。

这是创建新行的全部代码。 有任何想法吗?

   $('#new').click(function (e) 
                e.preventDefault();

                **var aiNew = oTable.fnAddData(['', '',
            '<a class="edit" href="">Edit</a>', '<a class="delete" href="">Delete</a>']);**
                var nRow = oTable.fnGetNodes(aiNew[0]);
                editRow(oTable, nRow, false);
                nEditing = nRow;
            });

【问题讨论】:

    标签: jquery asp.net-mvc dynamic datatables row


    【解决方案1】:

    我设法解决了。这是解决方案

    $('#new').click(function (e) {
                e.preventDefault();
    
                var fieldsCount = $("#FieldsCount").val();
                var row         = {};
    
                for (var i = 0; i < fieldsCount; i++) {
                    row[i] = '';
                }
    
                row[fieldsCount]                = '<a class="edit" href="">Edit</a>';
                row[parseInt(fieldsCount) + 1]  = '<a class="delete" href="">Delete</a>';
    
                var aiNew   = oTable.fnAddData(row);
                var nRow    = oTable.fnGetNodes(aiNew[0]);
    
                editRow(oTable, nRow, false);
                nEditing = nRow;
            });
    

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多