2017-05-30 69 views
0

我試圖用JSON數據或objects..whatever列表綁定jsGrid可能..jsgrid綁定MVC數據

$("#mapsDiv").jsGrid({ 
     height: "auto", 
     width: "100%", 

     sorting: true, 
     paging: false, 
     autoload: true, 
     data: students, 
     controller: { 
      loadData: function() { 
       var d = $.Deferred(); 

       $.ajax({ 
        url: '@Url.Action("About", "Home")', 
        dataType: "json" 
       }).done(function (response) { 
        d.resolve(response.value); 
       }); 

       return d.promise(); 
      } 
     }, 

     fields: [ 
      { name: "firstname", type: "text" }, 
      { name: "surname", type: "text"}, 
      { 
       name: "birthdate", type: "text" 
      }, 
      { 
       name: "classname", type: "text" 
      } 
     ] 
    }); 

的HomeController

public ActionResult About(){ 
... 
return Json(students, JsonRequestBehavior.AllowGet); 
} 

OR

public ActionResult About(){ 
... 
return View(students); 
} 

在json的情況下,我的網頁只顯示一個原始的json字符串,如果我返回一個lis t的學生對象,其他一切都在頁面上,但沒有網格。

我在做什麼錯了?

在附註中,我可以將這個網格與@Model綁定,就像我們在標記中一樣嗎?

+0

登入網絡您收到的回覆是什麼。檢查模型屬性的外殼。關於「附註」是的,你可以。將數據綁定到表後,只需在該表上調用jqgird函數即可。 – User3250

+0

我嘗試使用VAR值= @ Html.Raw(Json.Encode(Model.students)),它工作!現在我怎樣才能定義一個模板,以便除了上述4列之外,還可以動態添加x列? – Samra

+0

您需要手動添加。 –

回答

0

我最近有一個類似的問題,無法操縱JSON數據,並被卡住傳遞應用一個鍵到我的數據字典的靜態數據。

環視http://js-grid.com/docs/後,這是我如何使用自定義rowRenderer(你可以很容易地嵌入邏輯進入)來處理jsGrid數據

我的JS jsgrid代碼看起來是這樣的

$("#jsGrid").jsGrid({ 

data : [{ 'name' : 'Louise' , 'duties' : ['pranks', 'busing tables'] }, 
     { 'name' : 'Linda' , 'duties' : ['waiting tables', 'singing', 'comedic relief'] }], 

rowRenderer: function(item, itemIndex) { 
    var newRow = $('<tr>'); // create a new, empty HTML tr element 

    let nameCell = $('<td>'); 
    let dutiesCell = $('<td>'); 
    let summaryCell = $('<td>'); 

    let nameCellData = item['name'] 
    let dutiesCellData = item['duties'] 
    let summaryCellData = 'This is row ' + itemIndex + ' of this grid. The name of the employee that this row is about is ' + item['name'] + ' and she has ' + item['duties'].length + ' duties at the family restaurant!'; 


    $(nameCell).append(document.createTextNode(nameCellData)); 
    $(dutiesCell).append(document.createTextNode(dutiesCellData)); 
    $(summaryCell).append(document.createTextNode(summaryCellData)); 


    $(newRow).append(nameCell); 
    $(newRow).append(dutiesCell); 
    $(newRow).append(summaryCell); 

    return newRow; 
}, 
爲例

.....(在這裏插入你的jsgrid配置的其餘部分)

最主要的優點是被忽視的rowRenderer。從文檔中,函數可以使用項目它用於遍歷我的示例數組中的字典,itemIndex是jsGrid中的行號(這可能有助於稍後格式化),並且我利用這種格式在項目上撥打我自己的密鑰。我希望這有幫助!

+0

我停止使用jsGrid,因爲我們發現解決方案與其他控件,但它似乎像你找到了解決方案,所以我將其標記爲答案 – Samra