Kendo ASP.Net MVC Datagrid如何获取子行中的父行ID
Kendo ASP.Net MVC Datagrid how to get Parent Row Id in child rows
我有一个父级层次结构网格,每个父行都有一个子级 table。我在 table 子行中有一个自定义命令按钮,我想在按下该按钮时访问父行 ID。这是我的代码:
父级 Table:
@(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")
子 Table 模板:
<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
请告诉我是否有帮助
我有一个父级层次结构网格,每个父行都有一个子级 table。我在 table 子行中有一个自定义命令按钮,我想在按下该按钮时访问父行 ID。这是我的代码:
父级 Table:
@(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")
子 Table 模板:
<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
请告诉我是否有帮助