2013-10-09 17 views
5

ASP.NET MVC 4 | .NET 4.5 | jilet | C#Kendo Grid - Arama Sonrası Bind Verileri

Sayfanın üst kısmında bir metin kutum ve bir düğme var. Aşağıda benim görünüm modelimde bir Listeye bağlı bir Kendo Izgara var. Kullanıcı arama düğmesine tıkladığında jQuery ajax isteği yapılır ve veriler JSON olarak döndürülür. Sahip olduğum tek soru, bu verileri Kendo Grid'ime nasıl bağlarım? Herhangi bir yardım takdir edilir.

@(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))) 
    ) 

Düğme Ajax çağrı

$("#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) { 

     } 
    }); 
}); 

cevap

12

tıklayın Tüm ihtiyacınız:

1- Sonucun nesne Model.PurchaseOrder.LineItems aynı tip olmalıdır ve bir JSON nesnesi olmalıdır. Eğer MVC ActionResult kullanıyorsanız ServerCode kod aşağıda kullanabilirsiniz: kodunun altına

return Json(lineItems); 

2- kullanın sizin başarı ajax çağrısında:

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

amele büyük ki! Teşekkürler! – Will

+1

Bu rotaya gittiğimde çağrıları kaybediyorum. Bu sorunu başka biri var mı? –

+0

Ayrıca çağrılarımı da kaybettim! Bu sorun için herkesin bir çözümü var mı? –