如何在ASP.NET MVC中将jQuery数据表与动态列绑定

时间:2019-12-10 07:49:34

标签: c# jquery json asp.net-mvc datatables

在我的ASP.NET MVC操作中,我试图从.NET数据表中生成JSON。

我读了一篇文章,该文章显示了jQuery数据表列和数据的JSON外观。文章链接为https://www.c-sharpcorner.com/article/asp-net-jquery-datatables-plugin-with-dynamic-numbers-of-columns/

带有数据的列的JSON如下:

[{  
 "columns": [{  
  "title": "col1_name",  
  "data": "col1_name"  
 }, {  
  "title": "col2_name",  
  "data": "col2_name"  
 }],  
 "data": [{  
  "col1_name": "col1 data",  
  "col2_name": "col2 data"  
 }, {  
  "col1_name": "col1 data",  
  "col2_name": "col2 data"  
 }]  
}]  

当我从.NET数据表中生成JSON时,它看起来像[{"ID":1,"Name":"Ajay"},{"ID":2,"Name":"Sanu"}],如果我将其与jQuery数据表绑定,那么它将无法正常工作,因为我们需要提及jQuery数据表的列详细信息。

这是我从.NET数据表生成JSON的示例代码。我尝试过这种方式,但无法为我的第一个JSON示例生成JSON。所以指导我该怎么做?

DataTable dt = new DataTable();
    dt.Columns.Add("ID", typeof(Int32));
    dt.Columns.Add("Name", typeof(string));

    DataRow dr = dt.NewRow();
    dr[0] = 1;
    dr[1] = "Ajay";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr[0] = 2;
    dr[1] = "Sanu";
    dt.Rows.Add(dr);

    var lst = dt.AsEnumerable()
        .Select(r => r.Table.Columns.Cast<DataColumn>()
                .Select(c => new KeyValuePair<string, object>(c.ColumnName, r[c.Ordinal])
               ).ToDictionary(z => z.Key, z => z.Value)
        ).ToList();
    //now serialize it
    var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    var m= serializer.Serialize(lst); 

因此,请告诉我代码中要进行哪些更改,以使JSON应该正确显示将由.NET数据表生成的jQuery数据表。

0 个答案:

没有答案