Kendo Grid - не отображаются некоторые вспомогательные сетки - PullRequest
0 голосов
/ 15 мая 2018

У меня есть сетка кендо в основном приложении mvc asp.net. Когда я расширяю сетку во вспомогательную сетку, по большей части она работает, как и ожидалось, показывая вспомогательную сетку и затем вызывая контроллер и возвращая необходимые данные json.

Когда я раскрываю корневую сетку, чтобы выбрать строку для раскрытия. В определенных строках при создании вспомогательной сетки корневой отчет почти свернут, столбцы исчезают и все строки данных. Впоследствии, вызов к контроллеру все еще выполняется как обычно, и данные возвращаются. Однако данные не отображаются на экране, так как кажется, что подотчет не отображается.

Почему код, который работает для создания подотчета для одной строки, не работает для другой?

  • Это повторяется в моей настройке. я могу обновить и перезапустить мой браузер / приложение, и те же строки вызывают эту проблему.

Нажатие на вторую строку приводит к свертыванию отчета, как если бы его источник данных и столбцы были удалены.

enter image description here enter image description here

Обратите внимание, что корневой отчет, о котором я говорю, на самом деле является подотчетом.

Корневой отчет:

<script id="SalesByLocDept_DetailTemplate" type="text/x-kendo-tmpl">
        <h4>Department Sales Summary For Location: #=LocCode# - #=LocName#</h4>
        @(Html.Kendo().TabStrip()
                            .Name("sales_by_loc_tabstrip_#=ID#")
                            .Items(items =>
                            {
                                items.Add()
                                    .Text("Department Summary")
                                    .Selected(true)
                                    .Content(@<text>
                                    @(Html.Kendo().Grid<SalesSummaryByDepartmentViewModel>()
                                                    .Name("sales_by_loc_dept_tabstrip_#=ID#")
                                                    .Scrollable()
                                                    .Reorderable(r => r.Columns(true))
                                                    .Resizable(r => r.Columns(true))
                                                    .ColumnMenu()
                                                    .Columns(columns =>
                                                    {
                                                    columns.Bound(f => f.DeptCode).Title("Department Code");
                                                    columns.Bound(f => f.DeptDesc).Title("Department Name");
                                                    columns.Bound(f => f.TakingsToday).Title("Today's Takings");
                                                    columns.Bound(f => f.MarginToday).Title("Today's Margin");
                                                    columns.Bound(f => f.TakingsMonth).Title("Month's Takings");
                                                    columns.Bound(f => f.MarginMonth).Title("Month's Margin");
                                                    columns.Bound(f => f.TakingsYear).Title("Year's Takings");
                                                    columns.Bound(f => f.MarginYear).Title("Year's Margin");
                                                    columns.Bound(f => f.TakingsToDate).Title("Takings To Date");
                                                    columns.Bound(f => f.MarginToDate).Title("Margin To Date");
                                                })
                                                    .Pageable(pageable => pageable.Refresh(true).PageSizes(new int[] { 100, 150, 200 }))
                                                    .Sortable()
                                                    .Selectable()
                                                    .Navigatable()
                                                    .Filterable()
                                                    .ClientDetailTemplateId("SalesByLocDeptGroup_DetailTemplate")
                                                    .DataSource(dataSource => dataSource
                                                        .Ajax()
                                                        .Model(model => { model.Id(detail => detail.ID); })
                                                        .Read(read => read.Action("SalesByLocDepartment_Read", "Reporting", new { LocCode = "#=LocCode#" }))
                                                    ).ToClientTemplate()
                                    )</text>);
                    }).ToClientTemplate()
        )
    </script>

Подотчет:

        <script id="SalesByLocDeptGroup_DetailTemplate" type="text/x-kendo-tmpl">
        <h4>Group Sales Summary For Location: #=LocCode# - #=LocName#, Department: #=DeptCode# - #=DeptDesc#</h4>
        @(Html.Kendo().TabStrip()
                            .Name("sales_by_loc_dept_tabstrip_#=ID#")
                            .Items(items =>
                            {
                                items.Add()
                                    .Text("Group Summary")
                                    .Selected(true)
                                    .Content(@<text>
                                    @(Html.Kendo().Grid<SalesSummaryByGroupViewModel>()
                                                    .Name("sales_by_loc_dept_group_tabstrip_#=ID#")
                                                    .Scrollable()
                                                    .Reorderable(r => r.Columns(true))
                                                    .Resizable(r => r.Columns(true))
                                                    .ColumnMenu()
                                                    .Columns(columns =>
                                                    {
                                                    columns.Bound(f => f.GroupCode).Title("Group Code");
                                                    columns.Bound(f => f.GroupDesc).Title("Group Name");
                                                    columns.Bound(f => f.TakingsToday).Title("Today's Takings");
                                                    columns.Bound(f => f.MarginToday).Title("Today's Margin");
                                                    columns.Bound(f => f.TakingsMonth).Title("Month's Takings");
                                                    columns.Bound(f => f.MarginMonth).Title("Month's Margin");
                                                    columns.Bound(f => f.TakingsYear).Title("Year's Takings");
                                                    columns.Bound(f => f.MarginYear).Title("Year's Margin");
                                                    columns.Bound(f => f.TakingsToDate).Title("Takings To Date");
                                                    columns.Bound(f => f.MarginToDate).Title("Margin To Date");
                                                })
                                                    .Pageable(pageable => pageable.Refresh(true).PageSizes(new int[] { 100, 150, 200 }))
                                                    .Sortable()
                                                    .Selectable()
                                                    .Navigatable()
                                                    .Filterable()
                                                    .ClientDetailTemplateId("SalesByLocDeptGroupProduct_DetailTemplate")
                                                    .DataSource(dataSource => dataSource
                                                        .Ajax()
                                                        .Model(model => { model.Id(detail => detail.ID); })
                                                        .Read(read => read.Action("SalesByLocDeptGroup_Read", "Reporting", new { LocCode = "#=LocCode#", DeptCode = "#=DeptCode#" }))
                                                    ).ToClientTemplate()
                                    )</text>);
                        }).ToClientTemplate()
        )
    </script>

1 Ответ

0 голосов
/ 15 мая 2018

Я заметил, что строки, которые потерпели неудачу, имели шаблон.

Если бы я развернул корневой отчет в строке 1. В дополнительном отчете, при расширении его строки 1, произойдет сбой.Если бы я развернул корневой отчет в строке 3. Подотчет при расширении его строки 3 потерпит неудачу.

Это заставило меня взглянуть на свойства Name моих сеток и вкладок.Я включил удостоверение личности в конце как способ уникальной идентификации их.Я удалил идентификаторы из вкладок.Для сеток мне пришлось дополнительно однозначно идентифицировать их, используя комбинацию значений модели и идентификаторов.

Если кто-то понимает это поведение дальше, чем я, прокомментируйте.

...