列表到 Jquery 数据表 c#

List to Jquery Datatable c#

本文关键字:数据表 Jquery 列表      更新时间:2023-09-26

我正在尝试使我的列表填充我的jquery数据表,但我无法这样做,目前我将我的列表写入文件以通过view-model中的data表访问它,我的方法是正确的吗?

这是我的代码:

List<string> list = new List<string>();
foreach (var item in db.Pos)
{
   var total = 0;
   decimal costo = 0;
   for (int i = 1; i <= 31; i++)
   {
      var value = 0;
      if (item.Fecha.Day == i) { value = item.Cantidad; costo = costo + item.Total; }
      total += value;
   }
   list.Add(item.Descripcion);
   list.Add(item.Pdv);
   list.Add(item.Rid);
   list.Add(((costo / (total + 1)).ToString("C")));
   for (int i = 1; i <= 31; i++)
   {
      var value = 0;
      list.Add(value.ToString());
      int month = item.Fecha.Month;
      if (item.Fecha.Day == i) { value = item.Cantidad; list.Add(value.ToString()); }                                                
   }
   list.Add(total.ToString());
   list.Add((((costo / (total + 1)) * total).ToString("C")));
}
var json = JsonConvert.SerializeObject(new List<object>() { list });
System.IO.File.WriteAllText(@"'path.txt", json);

还有我的数据表 Ajax 调用:

$(document).ready(function () {
   var table = $('#pftable_hdr').DataTable({
    ajax: {
      url: "/path.txt",
      dataSrc: ""
    },
    scrollY: "500px",
    scrollX: true,
    scrollCollapse: true,
    fixedColumns: {
      leftColumns: 3
    }
  });
});

我的 Txt 文件输出的一部分:

[["ENS FRUTAS","REST","CENAS","$26.50","0","1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","$26.50","CAFE AMER ILIMIT","REST","CENAS","$11.50","0","1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","$11.50","QUESADILLAS TRAD (2)","REST","CENAS","$25.50","0","1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1","$25.50"]]

如何用我的列表填充我的 Jquery 数据表?我的文本文件应该在$data之前和之后都有[],但我不能只在文件的第一个和最后发生这种情况。

后端代码应如下所示。通过这样做,它将构建一个如下所示的 JSON 字符串:[["","",""...],["","",""...],["","",""...]]

List<List<string>> list = new List<List<string>>();
foreach (var item in db.Pos)
{
    List<string> listItem = new List<string>();
    var total = 0;
    decimal costo = 0;
    for (int i = 1; i <= 31; i++)
    {
        var value = 0;
        if (item.Fecha.Day == i) { value = item.Cantidad; costo = costo + item.Total; }
        total += value;
    }
    listItem.Add(item.Descripcion);
    listItem.Add(item.Pdv);
    listItem.Add(item.Rid);
    listItem.Add(((costo / (total + 1)).ToString("C")));
    for (int i = 1; i <= 31; i++)
    {
        var value = 0;
        listItem.Add(value.ToString());
        int month = item.Fecha.Month;
        if (item.Fecha.Day == i) { value = item.Cantidad;    listItem.Add(value.ToString()); }                                                
    }
    listItem.Add(total.ToString());
    listItem.Add((((costo / (total + 1)) * total).ToString("C")));
    list.Add(listItem);
}
var json = JsonConvert.SerializeObject(list);
System.IO.File.WriteAllText(@"'path.txt", json);

像这样尝试

 list.Add("[");
 list.Add(item.Descripcion);
// rest code....
list.Add((((costo / (total + 1)) * total).ToString("C")));
list.Add("]");

这对您的情况有用吗?让大家知道您的意见

var json = JsonConvert.SerializeObject(new List<object>() { list });

在上面的行列表中已经是一个对象,那么为什么要创建一个新对象并为该对象分配"列表"。

尝试如下:

var json = JsonConvert.SerializeObject(list);

这将为您提供所需的结果