【发布时间】:2016-12-21 11:00:06
【问题描述】:
我正在尝试将 JSON 响应动态绑定到网格。我已经设置了autobind = false,所以我可以控制何时调用ReadData()。
下面有一个简化的示例,我无法开始工作。
在视图中(cshtml)
@(Html.Kendo().Grid<MyModel>()
.Name("GridDetail")
.AutoBind(false)
.DataSource(ds =>
{
ds.Ajax().Read(r =>
{
r.Action("ReadData", "Home"); //action in Home controller
});
})
.Columns(c =>
{
c.Bound(m => m.Name);
c.Bound(m => m.Age);
})
)
@section Scripts{
<script type="text/javascript">
$(function () {
var grid = $("#GridDetail").data("kendoGrid");
grid.dataSource.read();
});
</script>
}
在我拥有的控制器中
public ActionResult ReadData()
{
var model = new[]
{
new MyModel
{
Name = "Abc",
Age = 10
},
new MyModel
{
Name = "PersonName",
Age = 25
},
};
return Json(model, JsonRequestBehavior.AllowGet);
}
使用 chrome 中的开发人员工具,我可以看到 ReadData() 的响应是 [{"Name":"Abc","Age":10},{"Name":"PersonName","Age":25}],但是呈现的网格仅显示列名,但没有显示数据列。
MyModel 是一个简单的类:
public class MyModel
{
public string Name { get; set; }
public int Age { get; set; }
}
【问题讨论】:
标签: kendo-ui telerik kendo-asp.net-mvc telerik-grid