Telerik MVC层次结构网格,编辑器弹出,获取JavaScript事件中的父数据

Telerik MVC层次结构网格,编辑器弹出,获取JavaScript事件中的父数据,javascript,kendo-grid,telerik-mvc,Javascript,Kendo Grid,Telerik Mvc,我已经做了很多搜索,似乎找不到任何有效的例子 我将在这里简化代码,因为我有一个非常大的telerik mvc层次结构网格。这里有一个下级模板,我需要上一级的父级信息 <script id="leagueTemplate" type="text/kendo-tmpl"> @(Html.Kendo().Grid<LeagueViewModel>() .Name("grid_#=LeagueTypeId#")

我已经做了很多搜索,似乎找不到任何有效的例子

我将在这里简化代码,因为我有一个非常大的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

                }

@(Html.Kendo().Grid())
.Name(“网格=联盟类型ID”)
.ToolBar(ToolBar=>
{
toolbar.Create().Text(“添加新联盟(窗口)”;
})
.Events(e=>e.Edit(“leagueEdit”)//此函数运行
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>Model.Id(p=>p.LeagueID))
.Read(Read=>Read.Action(“绑定的联盟读取”,“配置”,新的{leagueTypeId=“#=联盟类型id#“}))
.Create(Create=>Create.Action(“创建”、“配置”).Data(“getHeirarchyData”)//此函数不运行
)
)
函数getHeirarchyData(){
console.log(“获取继承人数据”);//从不运行
}
职能联盟编辑(e){
//这运行
//不确定如何从e获取父数据
}

也许有更好的方法来解决这个问题,如果是的话,我会检查你的答案,但这可能会对其他人有所帮助

我通过为模型设置默认值解决了这个问题,除了字符串值之外,该模型工作得非常好,因为我必须以模板语法字符串的方式访问这些值。因此,我只是将层次结构字段的字符串值等效项添加到模型中

            .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);
}