【问题标题】:Kendo master auto increment id showing in child grid when using clientTemplate of kendo UI Grid Hierarchy in C# MVC在 C# MVC 中使用 kendo UI Grid Hierarchy 的 clientTemplate 时,Kendo master 自动增量 ID 显示在子网格中
【发布时间】:2018-09-10 14:17:55
【问题描述】:

我在我的列表页面中实现了剑道网格层次结构。但是当我列出没有客户端模板的子项目时,每个项目的自动递增 id 正确显示但是当我在子网格中使用 kendo 网格的 clientTemplate 属性来显示自动递增 id 时,只显示父项的自动递增 id。 示例显示在下面 https://demos.telerik.com/kendo-ui/grid/hierarchy

父网格

@(Html.Kendo().Grid(Model.OrderList)
                                        .Name("Grid")
                                        .Columns(columns =>
                                        {
                                            columns.Bound(p => p.OrderID).Width("50px").Sortable(false).Filterable(false).Title("<input type='checkbox' id='chkSelectAll' onchange='SelectAll();'/>").ClientTemplate("<input type='checkbox' id='orderselect_#=OrderID#' class='orderselect' value='#=OrderID#' onchange='chkOrUnchk(this)'/>");

                                        })
                                        .Resizable(r => r.Columns(true))
                                        //.Reorderable(r => r.Columns(true))
                                        .Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple).Enabled(true))
                                        .Events(events => events.Change("Grid_OnRowSelect").DataBound("OrderGrid_OnDataBound").ColumnReorder("Grid_OnColumnReorder"))
                                        .Pageable(settings => settings.PageSizes(new int[] { 25, 50, 100, 500 }))
                                        .Sortable()
                                        .Scrollable(s => s.Virtual(false).Height("600px"))
                                        .Filterable()
                                        .ClientDetailTemplateId("childOrders")
                                        .DataSource(dataSource => dataSource
                                                    //.Server().Model(model => model.Id(p => p.OrderID))
                                                    .Ajax()
                                                    .PageSize(Model.DefaultOrderPageSize)
                                                    .Read(read => read.Action("ManageOrderLoadForGridAjax", "Order").Data("OrderSearchParameter"))
                                        )
                                )

                                Child Grid
                                <script id="childOrders" type="text/kendo-tmpl">
                                    @(Html.Kendo().Grid(new List<SMOrderNew>())
                                            .Name("grid_#=OrderID#") // template expression, to be evaluated in the master context
                                            .Columns(columns =>
                                            {
                                                // *i want child order number but return parent order number using client template*
                                                columns.Bound(p => p.OrderID).Width("50px").Sortable(false).Filterable(false).ClientTemplate("<input type='checkbox' id='orderselect_#=OrderID#' class='orderselect' value='#=OrderID#' onchange='chkOrUnchk(this)'/>");
                                                columns.Bound(p => p.OrderNumber).Groupable(false).Width("200px").Template(@<text></text>).ClientTemplate("<a #if(DisplayDistribution){# class='OrderHover'#}# data-id='#= OrderID #' href='javascript:void(0);' style='float:left;' onclick='OpenOrderDetailsPopup(\"#= OrderID #\", 0);'> #=OrderNumber# </a>");
                                                //columns.Bound(p => p.StoreName).Title("Store").Width(100).Template(@<text></text>).ClientTemplate("<div style='background:url(\"#=StoreImage_Icon#\") no-repeat left -2px; padding-left:20px;'>#=StoreName#</div>");
                                                columns.Bound(p => p.BuyerUserID).Width("200px").Title("Buyer User ID").HtmlAttributes(new { style = "white-space: nowrap;" });
                                            })
                                            .Events(events => events.Change("Grid_OnRowSelect").DataBound("OrderGrid_OnDataBound").ColumnReorder("Grid_OnColumnReorder"))
                                            .DataSource(dataSource => dataSource
                                                .Ajax()
                                                .PageSize(100)
                                                .Read(read => read.Action("ManageChildOrderLoadForGridAjax", "Order", new { OrderId = "#=OrderID#" }))
                                            )
                                            //.ClientDetailTemplateId("attributeOption")
                                            .Pageable()
                                            .Sortable()
                                            .ToClientTemplate()
                                    )
                                </script>

【问题讨论】:

    标签: c# kendo-ui kendo-asp.net-mvc client-templates


    【解决方案1】:

    我遇到了问题并找到了解决方法。这是范围问题,解决方案是使用 \#=OwnProperty\# 转义符号作为孩子的属性值。常规语法 #=Parent Property# 用于父属性。

    grid-child-properties-in-child-template

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多