我有植物和相关项目的清单。我想在包含所有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变得艰难。
答案 0 :(得分:1)
我将您的配置与here进行了比较,看起来相同。测试是否选择此方法:
.Select("ProjectsForPlant", "User", new { plantId = "<#= Id #>" }))
正确设置工厂ID,如果需要将其命名与Id字段完全相同,而不是plantId,即:
.Select("ProjectsForPlant", "User", new { Id = "<#= Id #>" }))