【问题标题】:Unable To Display Json Data in html Table Using jquery DataTable无法使用 jquery DataTable 在 html 表中显示 Json 数据
【发布时间】:2021-01-19 14:48:54
【问题描述】:

我有 C# 函数返回 Json 格式化数据,函数如下

  void DisplayProjectMasterList()
        {
            string JSONString = "";
            DataTable Dt = DB.GetDataTable("Sp_GetProjectMasterList");
            if (Dt.Rows.Count > 0)
            {
                JSONString = JsonConvert.SerializeObject(Dt);
            }
            Context.Response.Write(JSONString);
    
        }


and I am Calling This Function Via Ajax  .in console i am getting json data  But i dont know how to pass it to Jquery data table to display.. below is the javascript function... please help Me

function DisplayProjectMasterList() {
    $.ajax({
        url: 'project-master.ashx',
        type: "POST",
        dataType: 'json',
        data: {
            'fun': 'DisplayProjectMasterList'
        },
        success: function (data) {
            console.log(data);
            if (Chk_Res(data.errorMessage) == false) {
                    $('#tbl').dataTable({
                        paging: true,
                        sort: true,
                        searching: true,
                        scrollY: 200,
                        data: data,
                        columns: [
                            { 'data':data.Prj_Id },
                            { 'data':data.Prj_No },
                            { 'data':data.Prj_Name },
                            { 'data':data.Cus_Company_Name },
                            { 'data':data.Prj_StartDate },
                            { 'data':data.Prj_CompletionDate },
                        ]

                    });
               
             }
        }
        
    });
}

执行此操作时出现以下错误:

DataTables 警告:table id=tbl - 为第 0 行第 0 列请求未知参数“0”。有关此错误的详细信息,请参阅http://datatables.net/tn/4

【问题讨论】:

  • 您返回的数据在console.log(data); 中的样子如何?
  • 它的对象数组
  • 但它实际上是json数据还是json的字符串表示?如果它是 json 的字符串表示形式,那么您需要在使用它之前将其转换为实际的 json 数据。如果您也可以发布一些示例数据和表格的 html 标记,那就更容易了。
  • 感谢您的快速回复...我会发布回复
  • @Pirate 请查看我在控制台中的内容... (15) [{...}, {...}, {...}, {...}, {...}, {...}, { …}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}] 0:{Prj_Id:1,Prj_No:“PROJECT_001”,Prj_Name: "MYPROJECTNAME", Cus_Company_Name: "HAMAD J AL-AJMI EST FOR GENERAL CONTRACTING", Prj_StartDate: "2021-01-18T00:00:00", ...} 1: {Prj_Id: 2, Prj_No: "PROJ002", Prj_Name: " MYPROJ002", Cus_Company_Name: "HAMAD J AL-AJMI EST FOR GENERAL CONTRACTING", Prj_StartDate: "2021-01-18T00:00:00", ...} ..........

标签: javascript c# jquery ajax


【解决方案1】:

您好,请确保您返回的数据格式如下:

{
  "data": [
    {
     "Prj_Id": 1,
      "Prj_No": 1,
      "Prj_Name": "name",
      "Cus_Company_Name": "company",
      "Prj_StartDate": "2011/04/25",
      "Prj_CompletionDate": "2011/04/25"
    },
{
      "Prj_Id": 1,
      "Prj_No": 1,
      "Prj_Name": "name",
      "Cus_Company_Name": "company",
      "Prj_StartDate": "2011/04/25",
      "Prj_CompletionDate": "2011/04/25"
    }
  ]
}

jquery Datatables 默认查找对象数组的数据属性 https://datatables.net/reference/option/ajax.dataSrc https://datatables.net/examples/ajax/objects.html

【讨论】:

  • 你能告诉我如何转换这种格式的 C# 数据...谢谢
  • 您可以尝试使用 Newtonsoft JSON 并执行以下操作 var datajson= new Dictionary { { "data", JsonConvert.SerializeObject(yourcsharpdatatable) } };
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 2018-12-27
相关资源
最近更新 更多