簡體   English   中英

在將行添加到DataTable時遇到問題

[英]Having trouble adding row to DataTable

我用JavaScript對象建立一個jquery數據表。 表建立良好。 然后,在用戶的輸入上,我需要添加一行。 這是我遇到的問題。 我已經在Datatables.net和SO上對此進行了研究。 我讀過的所有內容都表明我正在做的事情應該起作用,但事實並非如此。 沒有添加行。 這是我初始化DataTable時的代碼。

$("#partsList").DataTable({
        data: data,
        "order": [[1, "asc"]],
        "scrollY": "800px",
        "scrollCollapse": true,
        "paging": false,
        columns: [
            {sTitle: "InvtId", data: "invtid", "defaultContent": '', 'className': 'invtId'},
            {sTitle: "Line Nbr", data: "linenbr", 'className': 'lineNbr', "defaultContent": 'TEST'},
            {sTitle: "BF", data: "BFval", "defaultContent": ''},
            {sTitle: "BU", data: "BUval", "defaultContent": ''},
            {sTitle: "CnvFact", data: "cnvfact"},
            {sTitle: "Origin", data: "origin"},
            {sTitle: "Line Tot", data: "linetot"},
            {sTitle: "Description", data: "descr"},
            {sTitle: "Quantity Ordered", data: "ordqty"},
            {sTitle: "Quantity Ship", data: "qtyship"},
            {sTitle: "Unit", data: "unitdesc"},
            {sTitle: "Sales Price", data: "slsprice"},
            {sTitle: "Wood Cost", data: "wood"},
            {sTitle: "Treatment Cost", data: "treat"},
            {sTitle: "Adjustments", data: "trtadj"},
            {sTitle: "Misc", data: "misc"},
            {sTitle: "Freight", data: "freight"}
        ]
    });

然后,在用戶輸入之后,我正在收集數據。 這是傳遞數據以添加新行的示例。 這不是整個對象。 只是要確保清楚閱讀。 所有字段均已通過。

Object {invtid: "APGC1DBTR061008", Bf: 880, Bu: 0.88, linenbr: 66536, cnvfact: 0, Adj: "-45"Bf: 880, Freight: "22"}

這是我添加新行的代碼。 我正在將數據與變量名稱數據傳遞給方法...

var tbl = $("#partsList").DataTable();
        tbl.row.add([
            data.invtid,
            data.linenbr,
            data.Bf,
            data.Bu,
            data.cnvfact,
            data.origin
        ]).draw();

有什么原因不起作用? 我已經嘗試了很多次,並在各處搜索並找不到問題。

您添加了一個數組,但是表中有一個對象。

row.add()文檔中

如果使用的是數據結構(即數組或對象),則其格式必須與表中的其他數據相同(即,如果表使用對象,請在此處傳遞具有相同屬性的對象!)。

您會注意到,您的結構在幾種方面與初始結構不匹配。 具體來說,你開始與一個對象,並嘗試添加一個數組,沒有任何BfBu原始表-你有他們的BFvalBUval --and許多屬性的缺失。 (我不知道add()方法是否會用空白填充缺少的屬性;也許您可以嘗試一下看看。)

因此,首先,從此更改您的原始表創建:

$("#partsList").DataTable({ //etc.

對此:

var tbl = $("#partsList").DataTable({ //etc.

然后擺脫這個:

var tbl = $("#partsList").DataTable();

並以此開始:

tbl.row.add({ //etc.

並確保您的數據匹配。

暫無
暫無

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

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