Как сделать так, чтобы колонка в сетке кендо не снималась в меню колонок - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть столбец, который я хочу всегда отображать в сетке, но у меня есть другие столбцы, которые я хочу разрешить пользователям включать и выключать. Я изо всех сил пытаюсь найти параметр в компоненте kendo-grid-column, который удалил бы его в качестве опции.

enter image description here

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

  <kendo-grid-column
    [width]="200"
    [columnMenu]="false"
    [resizable]="false"
    [editable]="false"
    id="actions-col"
    field="actions"
    title="Actions"
  >

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Определить menu внутри объекта столбца и установить его на false:

$("#grid").kendoGrid({
  columns: [
    { field: "id", menu: false },
    { field: "name",  menu: false },
    { field: "age" }
  ],
  columnMenu: true,
  dataSource: [
    { id: 1, name: "Jane Doe", age: 30 },
    { id: 2, name: "John Doe", age: 33 }
  ]
});

Пример: Меню столбцов

0 голосов
/ 06 апреля 2020

Я не знаю ни одного свойства, которое позволило бы сделать это напрямую. Однако вы все равно можете использовать событие columnMenuInit, чтобы скрыть некоторые пункты меню:

columnMenuInit(e) {
   //Hides the ShipCountry column
   //HiddenMenuItem set display: none!important
   e.container.find('li.k-columns-item').find('input[data-field="ShipCountry"]').closest("li").addClass("HiddenMenuItem");
}

В этом примере я не могу использовать CSS, чтобы отобразить ничего напрямую, потому что Kendo перезапишет его, а мы не можем удалить это из DOM, поскольку сетка вызовет ошибку, если не сможет ее найти ... вот почему я использую класс HiddenMenuItem.

...