我一直在进行大量搜索,似乎无法找到任何可行的示例。
我将在这里简化代码,因为我有一个非常大的telerik mvc层次结构网格。这里是一个儿童模板几级,我需要上一级的父信息。
<script id="leagueTemplate" type="text/kendo-tmpl">
@(Html.Kendo().Grid<LeagueViewModel>()
.Name("grid_#=LeagueTypeId#")
.ToolBar(toolbar =>
{
toolbar.Create().Text("Add New League(Window)");
})
.Events(e => e.Edit("leagueEdit")) // this function runs
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.LeagueID))
.Read(read => read.Action("Bound_League_Read", "Configuration", new { _leagueTypeId = "#=LeagueTypeId#" }))
.Create(create => create.Action("League_Create", "Configuration").Data("getHeirarchyData")) // this function doesnt run
)
)
</script>
function getHeirarchyData() {
console.log("get heirachy data"); // never runs
}
function leagueEdit(e) {
// this runs
// not sure how to get parent data from e
}
答案 0 :(得分:0)
可能有更好的方法可以解决这个问题,如果是这样的话,我会检查你的答案,但也许这会对同时有人提供帮助。
我通过设置模型的默认值来解决这个问题,除了字符串值之外,这个默认值非常有效,因为我必须将这些值作为模板语法字符串来访问。所以我只是将我的层次结构字段的字符串值等价物添加到模型中。
.Model(model =>
{
model.Id(p => p.LeagueID);
model.Field(l => l.strSportId).DefaultValue("#=SportId#");
model.Field(l =>
l.strLeagueTypeId).DefaultValue("#=LeagueTypeId#");
}
)
然后,当我调用编辑功能时,我可以得到如下值:
function leagueEdit(e) {
var sportId = parseInt(e.model.strSportId);
var leagueTypeId = parseInt(e.model.strLeagueTypeId);
}