【问题标题】:rows().every function not working in jquery binded datatablerows().every 函数在 jquery 绑定数据表中不起作用
【发布时间】:2017-04-12 03:49:49
【问题描述】:

嗨,我在我的 MVC 页面中使用 jquery 数据表,所以。在 1 页中,我必须将数据表中的所有数据发送到控制器。所以我所做的是将所有数据放入 1 个数组中,然后将其传递给控制器​​。使用代码

 var AllSelectedData = [];
var selected = [];
    table = $('#Distpopup').DataTable();
    table.rows().every(function () {
        var d = this.data();
        AllSelectedData.push(d);
    });
    $("#dtlist").val(AllSelectedData);

它适用于模型绑定数据表,但在一种情况下,我有一个使用 ajax 绑定的数据表,在这种情况下它不起作用。任何建议

【问题讨论】:

  • 控制台有错误信息吗?你能显示完整的脚本吗

标签: jquery ajax asp.net-mvc datatables


【解决方案1】:

您可以在模型绑定和 Ajax 中访问表的所有行。

例如这是你的数据表初始化。

var table = $('#Distpopup').DataTable();

将数据添加到表后,您希望在数组中获取此数据。如果您想将数据发送到控制器,请使用 JSON.stringify() 对数据进行字符串化,然后将其发送到控制器,您可以在带有表单字段的模型绑定中使用它,或者您也可以使用 Ajax 请求传递此字符串化数据。

var AllSelectedData = [];
table.rows().every(function () {
     var d = this.data();
     AllSelectedData.push(d);
});

$("#dtlist").val(JSON.stringify(AllSelectedData));

我也面临这个问题看到这个question它仍然没有答案。

【讨论】:

  • 我的问题是在 jquery 绑定数据表的情况下。它甚至不在 rows().every function 内部。我将 AllSelectedData 数组设为 null
  • 查看this link 并按照步骤操作,如果仍有问题,请发布。
  • 请更新您的问题,即您是如何初始化表对象的。
【解决方案2】:

您可以使用数据表回调,http://legacy.datatables.net/usage/callbacks

使用 initcomplete 回调函数的一种方法,当 表已初始化。

$('#Distpopup').DataTable({
          //Other settings
         "fnInitComplete": function (oSettings, json) {
               console.log(json.data);
            },
});

使用 createdrow 函数的另一种方法,它适用于创建的每一行

var AllSelectedData = [];
    $('#Distpopup').DataTable({
              //Other settings
            "createdRow": function (row, data, index) {
                  AllSelectedData.push(data);
                },
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2014-01-13
    • 2020-04-30
    • 2017-03-18
    • 1970-01-01
    相关资源
    最近更新 更多