javascript - Kendo ASP.Net MVC Datagrid 如何在子行中获取父行 ID

标签 javascript kendo-ui kendo-grid kendo-asp.net-mvc telerik-mvc

我有一个父层次结构网格,每个父行都有一个子表。我在子表行中有一个自定义命令按钮,我想在按下该按钮时访问父行 ID。这是我的代码:

父表:

    @(Html.Kendo().Grid<FsERP.Models.ParentModel>()
            .Name("gridParent")
            .Columns(columns =>
            {
                columns.Bound(p => p.ID).Hidden(true);
                columns.Bound(p => p.P_Column1).Width(180);
                columns.Bound(p => p.P_Column2).Width(180);
            })
            .DataSource(dataSource => dataSource
            .Ajax()
            .Batch(true)
            .ServerOperation(false)
            .Model(model =>
            {
                model.Id(p => p.ID);
                model.Field(p => p.ID).Editable(false););
            })
            .PageSize(20)
            .Read(read => read.Action("EditingCustom_Read", "Parent"))
        ).ClientDetailTemplateId("childsTemplate")

子表模板:

        <script type="text/kendo" id="childsTemplate">

             @(Html.Kendo().Grid<FsERP.Models.ChildModel>()
                        .Name("gridChild")
                        .Events(e => e.DataBound("OnDataBound").Edit("OnEdit"))
                        .Columns(columns =>
                        {
                            columns.Bound(c => c.ID).Hidden(true);
                            columns.Bound(c => c.C_Column1).Width(180);
                            columns.Bound(c => c.C_Column2).Width(130);
                            columns.Command(command =>command.Custom("GetParentID").Click("showParentID")).Width(80);
    }).DataSource(dataSource => dataSource
            .Ajax()
            .Batch(true)
            .ServerOperation(false)
            .Model(model =>
            {
                model.Id(p => p.ID);
                model.Field(p => p.ID).Editable(false););
            })
            .PageSize(20)
            .Read(read => read.Action("EditingCustom_Read", "Child"))
        ).ToClientTemplate()
)

             </script>

这是我的 javascript 点击方法:

function showParentID(e) {

}

我将如何在此 showParentID() 方法中提醒父 ID。任何帮助将不胜感激。

谢谢。

注意

我不想在 javascript 方法的参数中发送 parentID,因为我还需要访问事件信息。

最佳答案

您可以像这样将父 ID 字段添加到您的自定义命令名称中:

columns.Command(command => command.Custom("GetParentID_#=ID#")

然后在您的 showParentID 函数中检索已触发的按钮的名称,并在下划线或您喜欢的任何内容之后拆分 ID。

无论如何,这就是 POV,您可以以您认为更好的任何形式更改此场景。

The main hint here is to get access to parent id using #=ID# which is belong to the parent model

如果有帮助请告诉我

关于javascript - Kendo ASP.Net MVC Datagrid 如何在子行中获取父行 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41341059/

相关文章:

jquery - dataSource.read 之后获取 Kendo Grid 中的记录数

javascript - 为什么选择器 ":button"不适用于点击事件?

javascript - Node http-proxy 不在代理后面工作

javascript - Kendo 网格列标题

javascript - 如何显示剑道网格​​列菜单的剑道工具提示

javascript - 剑道模板绑定(bind)

mysql - Kendo grid 没有显示正确的时间

javascript - 使用 lodash 压缩不同大小的数组

javascript - 如何从javascript中的foreach循环中删除特定的数组元素

javascript - 当我的页面有两个网格时,如何只在一个网格中设置 td 的样式?