Древовидный список Kendo MVC не рендерится из начальной привязки - PullRequest
0 голосов
/ 29 ноября 2018

My MVC ViewModel содержит начальный список записей, которые будут отображаться в моем Kendo TreeList.Однако TreeList НЕ отображает начальный список ... и я не понимаю, почему.

ТРЕБОВАНИЯ:

  • Если исходные записи существуют ... показать их
  • READ ACTION не может быть выполнена при начальном рендеринге (другие элементы управления управляют этим позже)

Для других элементов управления Kendo вы устанавливаете:

  • AutoBind (false)
  • BindTo (Model.MyCollectiom)

... и действие READ не выполняется.Но TreeList в настоящее время не работает.

МОЯ БРИТВА СМОТРЕТЬ, КАК: При первоначальной записи рендеринга СУЩЕСТВУЙТЕ (см. Изображение ниже)

@(Html.Kendo().TreeList<DeviceHierarchyDataItem>()
              .Name("treeTarget")
              .Columns(columns =>
              {
                  columns.Add().Field(e => e.DisplayName)
                               .TemplateId("tmplDisplayName")
                               .Title(" ");
              })
              .BindTo(Model.TargetDevices)
              .AutoBind(false)
              .DataSource(dataSource => dataSource
                         .Read(read => read.Action("find", "devicehierarchy", new { Area = "" })
                                           .Data("window.etp.pageController.getFilter"))
                         .ServerOperation(false)
                         .Model(m =>
                         {
                             m.Id(f => f.Id);
                             m.ParentId(f => f.ChildOf);
                             m.Expanded(true);
                             m.Field(f => f.DisplayName);
                         }))
              .Sortable())

enter image description here

enter image description here

enter image description here

1 Ответ

0 голосов
/ 01 февраля 2019

Как ни странно, элемент управления TreeList MVC не поддерживает привязку к локальным данным ... По крайней мере, не в июле 2018 ...

Рекомендуется использовать вместо этого jquery control .

А затем преобразовать данные из модели в строку json:

$(document).ready(function () {
                var dataSource = new kendo.data.TreeListDataSource({
                    data: @Html.Raw(Json.Encode(@Model.TargetDevices)),
                    schema: {
                        model: {
                        id: "Id", 
                        parentid: "ChildOf", 
                        expanded: true
                        }
                    }
                });

Надеюсь, это поможет!

...