我有父网格和子网格,我正在使用kendo UI Grid(层次结构网格格式) 将子网格数据绑定到父网格中的相应行,以便我能够仅显示第一行的子网格,而不能显示另一行的相同详细信息......
这是我对该网格的看法......
@model IEnumerable<KendoSampleMVCApp.Models.EmployeesDetailsModel>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm())
{
@(Html.Kendo().Grid<KendoSampleMVCApp.Models.EmployeesDetailsModel>()
.Name("ParentGrids")
.Columns(columns =>
{
columns.Bound(e => e.EmployeeID).Width(100);
columns.Bound(e => e.EmployeeFirstName).Width(100);
columns.Bound(e => e.EmployeeSecondName).Width(100);
columns.Bound(e => e.EmployeeCity).Width(100);
})
.Sortable()
.Pageable()
.Scrollable()
.ClientDetailTemplateId("template")
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Read(read => read.Action("HierarchyBinding_Employees", "HierarchyGridDisplay"))
)
)
<script id="template" type="text/kendo-tmpl">
@(Html.Kendo().Grid<KendoSampleMVCApp.Models.ShipDescriptionModel>()
.Name("ChildGrids")
.Columns(columns =>
{
columns.Bound(o => o.ShipAddress).Width(70);
columns.Bound(o => o.ShipCountry).Width(70);
columns.Bound(o => o.ShipName).Width(70);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(6)
.Read(read => read.Action("HierarchyBinding_Orders", "HierarchyGridDisplay"))
)
.Pageable()
.Sortable()
.ToClientTemplate()
)
</script>
<script>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
</script>
}
这是我的模特
public class EmployeesDetailsModel
{
public string EmployeeID { get; set; }
public string EmployeeFirstName { get; set; }
public string EmployeeSecondName { get; set; }
public string EmployeeCity { get; set; }
}
public class ShipDescriptionModel
{
public string ShipCountry { get; set; }
public string ShipAddress { get; set; }
public string ShipName { get; set; }
}
public class EmployeeShipModel
{
public EmployeesDetailsModel employeesshipments { get; set; }
public ShipDescriptionModel shipinfo { get; set; }
}
您是否会建议任何想法和任何更改都需要在view
中完成,以便将子网格数据显示到另一行...非常感谢
请查看下面附带的图片
答案 0 :(得分:1)
我认为这是因为你有一个网格的静态ID。你应该尝试给它一个动态的,这样就可以创建不同的子网格。这就是为什么它只适用于第一条记录,因为您没有网格名称的变体。 试着这样做:
class PostSerializer(serializers.ModelSerializer):
related_comments = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = Post
fields = ('id', 'author', 'title', 'text', 'point', 'related_comments')
正在发生的事情是来自父网格的EmployeeId被拉下来,并被用于网格的命名约定。通过这种方式,您可以拥有与您喜欢的一样多的子网格。