2013-10-09 65 views
5

ASP.NET MVC 4 | .NET 4.5 |剃刀| C#Kendo Grid - 搜索後綁定數據

我在頁面頂部有一個文本框和一個按鈕。下面是一個Kendo網格,它綁定到我的視圖模型中的List。當用戶點擊搜索按鈕時,會產生一個jQuery ajax請求,並將數據作爲JSON返回。我唯一的問題是如何將這些數據綁定到我的劍道網格?任何幫助表示讚賞。

@(Html.Kendo().Grid(Model.PurchaseOrder.LineItems) 
    .Name("poSearchGrid") 
    .Columns(c => 
    { 
     c.Bound(x => x.LineNumber).Title("Line Number"); 
     c.Bound(x => x.Qty).Title("PO Qty"); 
     c.Bound(x => x.OpenQty).Title("Open Qty"); 
     c.Bound(x => x.QtyReceived).Title("Qty Received"); 
    }) 
    .Events(e => e.DataBound("onDataBound")) 
    .DataSource(s => s.Ajax().Model(model => model.Id(i => i.ID))) 
    ) 

按鈕單擊Ajax調用

$("#btnSearch").on('click', function() { 
console.log("click"); 
var searchText = $("#PONumber").val(); 

if (searchText == "") { 
    alert("You must enter a search value"); 
    return; 
} 

    $.ajax({ 
     url: '@Url.Action("Search")', 
     data: { poNumber: searchText}, 
     type: 'POST', 
     dataType: "json", 
     success: function(result) { 

     } 
    }); 
}); 

回答

12

所有你需要:

1-你的結果的對象必須是同一類型Model.PurchaseOrder.LineItems的,它必須是一個JSON對象。如果你使用MVC的ActionResult您可以在ServerCode使用下面的代碼:下面的代碼

return Json(lineItems); 

2-使用您的更迭Ajax調用:

var grid = $('#poSearchGrid').getKendoGrid(); //Or $('#poSearchGrid').data("kendoGrid"); 
grid.dataSource.data(result); 
grid.refresh(); 
+0

這真是棒極了!謝謝! – Will

+1

當我走這條路線時,我失去了分頁。任何人都有這個問題? –

+0

我也失去了分頁!任何人都有解決這個問題的方法? –