Столбец Angular Kendo UI Grid не отображает данные условно - PullRequest
0 голосов
/ 18 апреля 2019

Я не хочу отображать данные в ячейку, если значение, возвращаемое из базы данных, равно -1. Ячейка позволяет редактировать внутри ячейки. Если возвращается любое другое значение, оно должно отображаться. И ячейка должна все еще сохранять свое значение в случае, если мы хотим сохранить его снова. Чтобы добиться этого, я пытаюсь установить цвет ячейки на белый / прозрачный, если значение равно -1. И это происходит, когда значение возвращается в сетку. Но когда я щелкаю в этой ячейке, отображается -1. Поэтому я снова вызываю его из cellClickHandler, но цель не решается. Есть ли лучший способ, чтобы значение не отображалось, когда -1? ИЛИ если кто-то может направить меня, чтобы исправить проблему цвета при нажатии внутри ячейки. Вот мой код:

html:        
<kendo-grid-column field="MasterID" width="75">
            <ng-template kendoGridCellTemplate let-dataItem>
                <span class="whole-cell" [style.color]="colorTransparent(dataItem.MasterID)">
                    {{ dataItem.MasterID }}
                </span>
            </ng-template>
        </kendo-grid-column>

//in component
    public colorTransparent(MasterID: number): SafeStyle {
        let result;

        switch (MasterID) {
            case -1:
                result = '#ffffff'; //white
                break;

            default:
                result = '#808080'; //grey
                break;
        }

        return this.sanitizer.bypassSecurityTrustStyle(result);
    }

  //when you click a cell to edit
    public cellClickHandler({ sender, rowIndex, column, columnIndex, dataItem, isEdited }) {
        this.colorTransparent(dataItem.MasterID);

        if (!isEdited && !this.isReadOnly(column.field)) {
            sender.editCell(rowIndex, columnIndex, this.createFormGroup(dataItem));
        }
    }

1 Ответ

0 голосов
/ 18 апреля 2019

Вы хотите, чтобы пользователи могли редактировать это конкретное поле?Если нет, то вы можете продолжить настройку и условно добавить класс "k-grid-ignore-click" в ячейки со значением -1.Это не позволит пользователям щелкать по ячейке, чтобы отобразить значение -1.

Для получения дополнительной информации об этом я бы ознакомился с документацией Telerik здесь .

* 1008.* РЕДАКТИРОВАТЬ: Если вы все еще хотите разрешить пользователям редактировать это поле, я бы предложил настроить службу для извлечения данных и их форматирования.Таким образом, вы можете отобразить любые значения в этом конкретном поле, которые входят как -1 в nullКогда вы сохраняете данные обратно в БД, сопоставьте все значения, которые не были изменены, с null обратно на -1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...