首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kendo网格没有在子模板上加载数据

Kendo网格没有在子模板上加载数据
EN

Stack Overflow用户
提问于 2018-04-21 15:33:14
回答 1查看 763关注 0票数 0

在Kendo中,我很难将数据加载到子网格--第一个网格加载得很好,但是当我扩展该用户时,子网格没有显示任何内容。即使我在控制器中放置了一个断点,也不会调用Read事件。当我单击列来筛选时,Read方法返回一个错误

参数字典包含“Apple.Web.Controllers.BalanceController”中非空类型'System.Int32‘的参数'id’的空项,用于方法'System.Web.Mvc.ActionResult ReadBalances(Kendo.Mvc.UI.DataSourceRequest,Int32)‘。可选参数必须是引用类型、可空类型,或者声明为可选参数。德尔帕拉都会:参数

我在客户端javascript上没有任何错误。

控制器

代码语言:javascript
复制
   public ActionResult Read([DataSourceRequest] DataSourceRequest request)
    {
        var users = _userProcessor.Get(Constants.USER_TYPE_CLIENT).Result as List<User>;
        return Json(users.ToDataSourceResult(request));
    }

    public ActionResult ReadBalances([DataSourceRequest] DataSourceRequest request, int id)
    {
        var balances = _balanceProcessor.Get(id).Result as List<Balance>;
        DataSourceResult result = balances.ToDataSourceResult(request, balance => new {
            Id = balance.Id,
            Amount = balance.Amount,
            UserId = balance.UserId,
            Description = balance.Description,
            Date = balance.Date
        });
        return Json(result, JsonRequestBehavior.AllowGet);
    }

Index.cshtml

代码语言:javascript
复制
@(Html.Kendo().Grid<Apple.DataLayer.Types.User>()
              .Name("gridUsers")
              .Columns(columns =>
              {
              columns.Bound(c => c.Name);
              columns.Bound(c => c.LastName);
              columns.Bound(c => c.Balance);
              })
              .Sortable()
              .Pageable()
              .Scrollable()
              .Filterable(f => f.Extra(false))
              .DataSource(dataSource => dataSource
                  .Ajax()
                  .Model(model =>
                  {
                     model.Id(u => u.Id);
                  })
                  .Read(read => read.Action("Read", "Balance"))
              )
              .HtmlAttributes(new { style = "height: 550px;", id = "gridUsers" })
              .ClientDetailTemplateId("client-template")
)

<script id="client-template" type="text/kendo-template">
@(Html.Kendo().Grid<Apple.DataLayer.Types.Balance>()
              .Name("grid_#=Id#")
              .ToolBar(toolbar =>
              {
                  toolbar.Custom().Text("Nuevo").HtmlAttributes(new { onclick = "return Nuevo(#=Id#, this);" });
              })
              .Columns(columns =>
              {
                  columns.Bound(c => c.Date).Width(150).Format("{0:dd/MM/yyyy hh:mm}");
                  columns.Bound(c => c.Description);
                  columns.Bound(c => c.Amount);
              })
              .DataSource(dataSource => dataSource
              .Ajax()
              .Model(model =>
              {
                model.Id(d => d.Id);
              })
              .Read(read => read.Action("ReadBalances", "Balance", new { id = "#=Id#" }))
              .PageSize(5)
              )
              .Pageable()
              .Sortable()
              .Filterable()
              .ToClientTemplate()
)
</script>
EN

回答 1

Stack Overflow用户

发布于 2018-04-21 16:36:34

我认为在父网格和子网格中使用相同的字段名id可能是一个问题。根据剑道,由于字段名是相同的,其中一个将覆盖另一个,因此应该使用不同的字段名。尝试将父网格的id更改为parentID

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49957382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档