【问题标题】:Can't add row to jQuery data table无法将行添加到 jQuery 数据表
【发布时间】:2019-05-19 13:35:54
【问题描述】:

单击模式弹出窗口上的提交按钮后,我正在尝试向 jQuery 数据表中添加行。我将数据从弹出窗口转换为 JSON 字符串并将其传递给函数以填充数据表,但不断收到有关“请求的未知参数‘名称’”的数据表警告。我检查以确保列数和数据点数相同,因为这似乎是此错误的常见原因。

这是我尝试过的:

$(document).on("click", "#btnNewEduSubmit", function (event) {debugger
    var isValid = validateEducationSubmit();

    if (isValid) {
        var name = $('#tbName').val();
        var location = $('#tbLocation').val();
        var degree = $('#ddlDegree').find("option:selected").text();
        var degreeID = $('#ddlDegree').val();
        var field = $('#tbField').val();
        var startDate = $('#tbEduStartDate').val();
        var enddate = $('#tbEduEndDate').val();
        var notes = $('#taNotes').val();

        var params = JSON.stringify("{ 'Name': '" + name + "', 'Location': '" + location + "', 'Degree': '" + degree + "', 'DegreeID':'" + degreeID + "', 'Field': '" + field + "', 'StartDate': '" + startDate + "', 'EndDate': '" + enddate + "', 'Notes': '" + notes + "' }");
        populateTable(params, tblEdu);
    }
});

function populateTable(parameters, table) {debugger
    var jResult = JSON.parse(parameters);
    table.row.add(jResult).draw(); <--- Error here, i can see 'Name' parameter
    table.columns([8]).visible(false);
    table.draw(false);
}

var tblEdu = $("#EducationTable").DataTable({
    jQueryUI: true,
    data: [],
    dom: 't',
    order: [[4, "asc"]],
    autoWidth: false,
    "oLanguage": {
        "sEmptyTable": "No Education Info Was Found."
    },
    "columns": [
        {
            "data": "Name"
        }, {
            "data": "Location"
        }, {
            "data": "Degree"
        }, {
            "data": "Field"
        }, {
            "data": "StartDate"
        }, {
            "data": "EndDate"
        }, {
            "data": "Notes"
        }, {
            "render": function (data, type, row) {
                // This doesn't work either when I click on "delete" link!
                var cellContent =
                    "<a href='javascript:' onclick=\"tblEdu.row().remove().draw(false) \">Delete</a>";
                return cellContent;
            }
        }, {
            "data": "DegreeID"
        }
    ],
    "columnDefs": [
        {
            "targets": [8],
            "visible": "false",
            "searchable": "false"
        }
    ]
});

错误弹窗关闭后,数据表中增加一行空值。

【问题讨论】:

  • 分享你的html代码
  • 检查静态 json 数据。如果你分享 html 就很好了

标签: jquery asp.net datatables


【解决方案1】:

我猜错误是在你的 json stringfy 然后是解码。如果您要将 javascript 对象转换为 json,那么它应该像 { name: "John", age: 30, city: "New York" } -> 键上没有 ' '。如果你用的是这个"{'Name':'" + name + "', ... }",已经是json字符串了,可以直接发送到DataTable。

【讨论】:

  • 谢谢。必须将参数更改为: var params = JSON.stringify({ Name: name, Location: location, ...;
  • 不错!乐于助人
猜你喜欢
  • 1970-01-01
  • 2016-12-28
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
相关资源
最近更新 更多