0

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

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

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

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

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

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

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

所以这就是我所拥有的

  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"

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

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

   $('#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;
            });
4

1 回答 1

0

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

$('#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;
        });
于 2012-12-05T22:03:48.593 回答