jquery DataTable服务器端添加行无法正常工作

标签 jquery datatable server-side

我正在尝试复制此处显示的示例: DataTable t.row.add() 但使用服务器端进行表填充: 这里是核心脚本:

var wh=window.innerHeight-250;
var table= $('#dataTable_e').DataTable( {
    "processing": true,
    "serverSide": true,
    "stateSave": true,
    "dom": 'RrtiS<"bottom">f<"clear">',
    "pagination":false,
    "scrollY": wh+"px",
    "scrollX": true,
    "deferRender": true,
    "displayStart":0,
    "ajax": 
    {
        "url": "ajax/jsTable.asp",
        "data": function (d) {
            d.myKey="Alerts";
        }
    },
    "drawCallback": function( settings ) {

        $('#control-wraps a').fontSizer();
     },

    "columns": [
                {"data": "ID"},
                {"data": "WidgetID"},
                {"data": "Active"},
                {"data": "LangID"},
                {"data": "ValidFrom"},
                {"data": "ValidTo"},
                {"data": "BkgColor"},
                {"data": "TextColor"},
                {"data": "FontFamily"},
                {"data": "FontSize"},
                {"data": "Height"},
                {"data": "Rows"},
                {"data": "Message"}
             ]
          });

这工作得很好。 然后我尝试在单击按钮时添加新行,这是脚本:

        $('#dataTable_e_new').click(function (e) {
        e.preventDefault();

        if (nNew && nEditing) {
            if (confirm("Previose row not saved. Do you want to save it ?")) {
                saveRow(table, nEditing); // save
                $(nEditing).find("td:first").html("Untitled");
                nEditing = null;
                nNew = false;

            } else {
                table.fnDeleteRow(nEditing); // cancel
                nEditing = null;
                nNew = false;

                return;
            }
        }

        //var aiNew = 
        table.row.add(
            [ {"ID": "2"},
              {"WidgetID": "System Architect"},
              {"Active": "$320,800"},
              {"LangID": "2011/04/25"},
              {"ValidFrom": "Edinburgh"},
              {"ValidTo": "5421"},
              {"BkgColor": "red"},
              {"TextColor": "green"},
              {"FontFamily": "Arial"},
              {"FontSize": "50"},
              {"Height": "300"},
              {"Rows": "3"},
              {"Message": "Test"}             
            ]
           ).draw();               
    });

但它不起作用:我尝试了几种形状的数据,但我总是得到:

DataTables warning: table id=dataTable_e - Requested unknown parameter 'ID' for row 1

显然我没有传递正确的格式,但不知道如何处理:-(

如有任何建议,我们将不胜感激。 感谢您的阅读。

最佳答案

如果将“列”定义为对象,那么您应该添加一个对象而不是数组。 您既没有添加数组,也没有添加单个对象,而是添加了对象数组。 所以使用

table.row.add({
  "ID": "2",
  "WidgetID": "System Architect",
  "Active": "$320,800",
  "LangID": "2011/04/25",
  "ValidFrom": "Edinburgh",
  "ValidTo": "5421",
  "BkgColor": "red",
  "TextColor": "green",
  "FontFamily": "Arial",
  "FontSize": "50",
  "Height": "300",
  "Rows": "3",
  "Message": "Test"
})
.draw();   

关于jquery DataTable服务器端添加行无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651844/

相关文章:

python - django 中的可编辑数据表,由 mongodb 支持

c# - SqlDataReader 与 SqlDataAdapter : which one has the better performance for returning a DataTable?

c# - 如何对 2 个数据表执行 Union All

php - 在php解释器解析打开数据库连接、执行curl请求等代码后,后台实际发生了什么?

javascript - 使用 Javascript 删除 cookie

javascript - 箭头语法和函数语法真的相同吗? (无法读取未定义的属性 'createDocumentFragment')

javascript - 如何使用jquery正确加载php文件

javascript - 如何判断 Javascript 错误是否为 'blocking' ?

javascript - 每当以 Bootstrap 的形式出现无效的弹出消息时,我们如何才能停止发送数据?

web-applications - 用于 Web 应用程序的 Java、PHP 或 Python?