2016-02-03 13 views
0

我想讓我的列表填充我的jQuery數據表,但我無法這樣做,此刻即時編寫我的列表到一個文件來訪問它通過datatable在我的view-model是我的接近正確的一個?列表到jquery數據表c#

這是我的代碼:

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

而且我的DataTable 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之前和之後應該有[],但是我不能只在文件的第一個文件和最後纔會發生這種情況。

+0

所以,你想[ 「ENS FRUTAS」, 「休息」, 「CENAS」, 「$ 26.50」, 「0」, 「1」] [「ENS2」,「REST」,「CENAS」,「$ 26.50」,「0」,「1」] .....? – Rigin

+0

確切地說,所以我的數據表格正確顯示他們@Rigin –

+0

我會把一個答案..嘗試該代碼。不能寫在這裏,可能會混淆 – Rigin

回答

1

您的後端代碼應該看起來像這樣。通過這樣做,將構建正在尋找這樣一個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); 
+0

我試着用你的代碼,但我得到這個部分的錯誤: –

+0

這是哪一部分? – brannmar

+0

NVM得到它,我的文件現在保存完全按照我需要感謝的人 –

0

嘗試這樣

list.Add("["); 
list.Add(item.Descripcion); 
// rest code.... 

list.Add((((costo/(total + 1)) * total).ToString("C"))); 
list.Add("]"); 

將這項工作對於你的情況?讓我們知道您的意見

+0

如果額外的sq大括號,然後刪除子串 – Rigin

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

在上線名單已經是一個對象,那麼,爲什麼要創建一個新的對象,並賦予「名單」那個對象。

嘗試像下面,

var json = JsonConvert.SerializeObject(list); 

這將提供您所需的結果