簡體   English   中英

列出到Jquery Datatable C#

[英]List to Jquery Datatable c#

我正在嘗試使我的列表填充我的jquery數據表,但我無法這樣做,目前我將我的列表寫入文件以通過view-model表訪問它是我的正確方法嗎?

這是我的代碼:

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);

這將為您提供所需的結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM