5

ASP.NET MVC 4 | .NET 4.5 | かみそり| C#

ページの上部にテキストボックスとボタンがあります。その下には、ビュー モデルのリストにバインドされた Kendo Grid があります。ユーザーが検索ボタンをクリックすると、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) {

        }
    });
});
4

1 に答える 1

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();
于 2013-10-09T09:27:54.673 に答える