簡體   English   中英

如何在數據表中添加行?

[英]how add row in datatable?

我需要在數據表中添加行,但列數是可變的。

我嘗試兩次但不運行,因為row.add需要所有行而不是1到1。

var obj = $.parseJSON(res);
       $.each(obj, function (index) {
            $.each(obj[index], function (value) {
                table.row.add([obj[index][value]]).draw();
            });
        });

是否可以在不知道列數的情況下添加行?

編輯:因此,如果您具有可變的列數,則最可能仍能使用數據表的唯一方法是將空白值插入不構成最大數量值的行的列中,例如:

table.row.add(['a','b','c','d']).draw();
//Above is a row which has all the 4 column values
//Beneath is a row with 3 out of 4 column values
table.row.add(['a','b',null,'d']).draw() 
/*or*/ 
table.row.add(['a','b','','d']).draw()

我不太確定您從哪里知道row.add()需要一次添加所有行 根據官方文檔https://datatables.net/reference/api/row.add() ,此方法可以向表中添加單行而沒有任何問題。

在這里,JSFiddle證明可以將一行添加到已經存在的行: myTable.row.add(["Airi Satou", "This was", "added", "later", "EXAMPLE", "ITEM"]).draw(); http://jsfiddle.net/bbLjzspf/8709/

首先,您的腳本中有一個錯誤,也許是一個錯字,在[obj] [index] [value]“]”之后有一個額外的方括號。

var obj = $.parseJSON(res);
   $.each(obj, function (index) {
        $.each(obj[index], function (value) {
            table.row.add(
               [obj[index][value]  >]<-- One too many brackets   ).draw();
   });
});

然后我的建議。

首先,我做了兩個小幫手。

一種計算列數的方法:

$.fn.DTbl_columnCount = function () {
    return $('th', $(this).find('thead')).length;
};

而且由於我不知道要發送什么樣的數據,因此下一個是“任何”版本的所有皮帶和皮帶扣,erm,它也接受數組;)

$.fn.DTbl_createDataColumns = function (whatever) {
    var temp = new Array($(this).DTbl_columnCount());
    var value = "";
    var type = jQuery.type(whatever);
    var isArray = (type == "array");
    if (!isArray && type != undefined) 
        value = whatever;
    for (var i = 0; i < temp.length; i++) {
        if (isArray) 
            if (whatever.length > i)
                value = whatever[i];
        temp[i] = '' + value;
        value = "";
    }
    return temp;
};

然后針對您的問題,由於這些添加實際上並不是DataTable的一部分,因此我們需要在DTbl_createDataColumns的函數調用中獲取DataTable ID,此處使用標准引用“ #example”。

var obj = $.parseJSON(res);
$.each(obj, function (index) {
    $.each(obj[index], function (value) {
        table.row.add(
           $("#example").DTbl_createDataColumns([obj[index][value])
        ).draw();
    });
});

所以這也可以工作:

var myArray = ["Dodaa", "Dodee"];
table.row.add(  $("#example").DTbl_getDataColumns(myArray) );
table.row.add(['a','b','','d']).draw() 

沒有為我工作。

我要做

table.row.add([['a','b','','d']]).draw()

在字典和數組的數據類型之間保持一致也很重要。 如果我們在不同的調用中混合字典和數組,則DataTable不喜歡它。 例如,我們可能需要做(如果它是用字典數組初始化的)。

table.row.add([{'hdrCol1': 'a', 'hdrCol2':'b','hdrOfCol3':'', 'hdrCol4':'d'}]).draw()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM