【问题标题】:Jquery Datatable data to jsonJquery Datatable 数据到 json
【发布时间】:2016-10-25 13:23:31
【问题描述】:

我正在处理需要将数据表数据传递到服务器端的场景。 这是我尝试过的 -

在视图中获取 Datatable 数据 -

var oTable = $('#DetailTable').dataTable();
var data = oTable.fnGetData();

然后尝试使用 ajax cal 发布数据 -

$.ajax({
    type: "POST",                   
    dataType: 'text',
    data:  data,
    url: "/Admin/SaveAll",                  
    success: function (result) {
    }
});

并且在Controller动作方法中-

public ActionResult SaveAll(string data)
{ 
}

我在服务器端得到空值。如何将所有数据表数据传递到服务器端?

【问题讨论】:

  • 您的数据表中有dom 元素吗?
  • 为什么要将所有数据表数据传递给服务器?我觉得你的场景不好。
  • 是的,我在每一行都有一个图像“删除”。
  • 在这种情况下,用户允许创建一个包含多个子记录的主记录。因此,当用户针对主记录添加子记录时,子记录会显示在数据表中,然后在提交时单击将所有记录带到服务器端的内容。
  • 那么据我了解,为什么不将带有父 ID 的子记录发送到服务器而不是所有主记录和详细记录?

标签: javascript jquery json ajax datatable


【解决方案1】:

特别是在这种情况下,您将旧样式 API ( fnGetData ) 与新样式 API 对象一起使用。我建议你改用 row().data()。

【讨论】:

    【解决方案2】:

    data 方法中的data 参数是另一端的字符串,您通过fnGetData() 获取表记录此函数将以JSON 格式返回记录,因此您应该制作JSON 的字符串然后将其作为Ajax 数据传递,

    试试这个

    var postData = JSON.stringify({ 'data': data});
    
        $.ajax({
            type: "POST", 
            data: postData,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: "/Admin/SaveAll",                  
            success: function (result) {
            }
        });
    

    如您所见this link 讨论了如何通过ajax 将数据表数据发送到服务器,他们正在使用JSON.Stringify

    如果您在对数据表数据进行字符串化时遇到循环引用错误,请查看herehere 有一些很好的建议,您可能会找到外部库来执行此操作。

    我希望这可以帮助您解决问题。

    【讨论】:

    • 我收到错误“0x800a13aa - JavaScript 运行时错误:不支持值参数中的循环引用”
    • 我已经测试过了,postData由数据表字符串数据发起,你试清楚了吗?
    • var postData 行抛出相同的错误 - 0x800a13aa - JavaScript 运行时错误:不支持值参数中的循环引用
    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 2011-09-22
    • 2021-01-17
    • 2017-06-01
    • 2018-12-27
    • 1970-01-01
    • 2021-08-18
    • 2014-04-30
    相关资源
    最近更新 更多