Telerik MVC Grid不会将数据加载到详细信息表(子表)

时间:2011-01-12 14:08:04

标签: asp.net-mvc ajax grid telerik

我有植物和相关项目的清单。我想在包含所有Plants的表中输出它,并使用Telerik.Grid扩展Plant,显示带有相关项目的Telerik.Grid。我希望使用Ajax动态加载Projects。

网格代码:

@(Html.Telerik().Grid<PlantDto>()
  .Name("Plants")
  .Columns(columns =>
    {
        columns.Bound(plant => plant.Title);
    })
  .DetailView(details => details.ClientTemplate(
    Html.Telerik().Grid<ProjectDto>()
    .Name("Plant_<#= Id #>")
    .DataBinding(dataBinding => dataBinding.Ajax()
            .Select("ProjectsForPlant", "User", new { plantId = "<#= Id #>" }))
        .ToHtmlString()
  ))
  .DataBinding(dataBinding => dataBinding.Ajax().Select("PlantsForUser", "User"))
)

初始数据很好地加载到网格中(植物列表)但是当我扩展植物时,我只得到一个空的子表。

查看FireBug,没有对服务器的调用。永远不会调用应该为项目列表提供服务的控制器。

任何人都知道它可能是什么?

更新:看起来导致问题的是plant.id中有一个“$”。比如“PCD $ ODIN”。看起来这让JavaScript变得艰难。

1 个答案:

答案 0 :(得分:1)

我将您的配置与here进行了比较,看起来相同。测试是否选择此方法:

.Select("ProjectsForPlant", "User", new { plantId = "<#= Id #>" }))

正确设置工厂ID,如果需要将其命名与Id字段完全相同,而不是plantId,即:

.Select("ProjectsForPlant", "User", new { Id = "<#= Id #>" }))