【发布时间】:2015-03-22 15:19:42
【问题描述】:
我正在使用 Kendo UI Grid 服务器端包装器,并尝试从我的模型中将一些数据加载到其中。网格正在页面上呈现,但没有填充数据。我没有太多地使用这个网格,所以我认为我只是缺少 ClientTemplate 的一些东西。我已经查看了 Kendo 文档,但还没有运气。
这是我的观点:
<div id="dependents">
<div id="grid">
@(Html.Kendo().Grid<Enrollment.Models.DependentModel>()
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("KendoGrid", "Dependents"))
.ServerOperation(false)
)
.Columns(columns =>
{
columns.Bound(d => d.MaskedSSN).ClientTemplate("<#: MaskedSSN #>").Title("SSN");
columns.Bound(d => d.FirstName).ClientTemplate("<#: FirstName #>").Title("First Name");
columns.Bound(d => d.LastName).ClientTemplate("<#: LastName #>").Title("Last Name");
columns.Bound(d => d.DateOfBirth).ClientTemplate("<#: DateOfBirth #>").Title("Date of Birth");
columns.Bound(d => d.Gender).ClientTemplate("<#: Gender #>").Title("Gender");
columns.Bound(d => d.DependentTypeId).ClientTemplate("<#: DependentTypeId #>").Title("Type");
})
.Pageable()
.Sortable()
.HtmlAttributes(new {style = "height: 400px;"})
)
</div>
这是我的控制器:
[HttpGet]
public ActionResult KendoGrid([DataSourceRequest]DataSourceRequest request)
{
DataSourceResult result = UnitOfWork.Enrollment.Dependents.ToDataSourceResult(request,
model => new DependentModel
{
SSN = model.SSN,
FirstName = model.FirstName,
LastName = model.LastName,
DateOfBirth = model.DateOfBirth,
Gender = model.Gender,
DependentTypeId = model.DependentTypeId
});
return View(result);
}
有人可以告诉我我缺少什么或我做错了什么吗?如果您需要更多信息,请告诉我。就像我说的那样,网格在页面上呈现所有正确的列标题,应该只有一行,但不存在数据。它只是说“没有要显示的项目”。
谢谢
【问题讨论】:
-
如果您在浏览器中使用开发者工具,您是否看到数据实际上来自您的服务器?这将帮助您将问题分成两半,并确定它是否真的没有获取数据,或者没有显示数据。
-
我在控制器上设置了一个断点,它到达了断点。有趣的是 /Dependents/KendoGrid 正在为 POST 生成 404 错误,但这是一个 GET
标签: c# asp.net-mvc-4 kendo-ui kendo-grid