Столбец сетки пользовательского интерфейса Angular Kendo не отображает данные условно

#angular #kendo-ui #conditional-formatting

#angular #kendo-ui #условное форматирование

Вопрос:

Я не хочу отображать данные в ячейке, если значение, возвращаемое из базы данных, равно -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 resu<

        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 amp;amp; !this.isReadOnly(column.field)) {
            sender.editCell(rowIndex, columnIndex, this.createFormGroup(dataItem));
        }
    }
 

Ответ №1:

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

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

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

Комментарии:

1. Да, они могут добавить значение в поле и сохранить снова

2. В этом случае я бы предложил настроить службу для извлечения данных и форматирования их в соответствии с вашими потребностями. В частности, для этой проблемы сопоставьте любые значения в этом поле, которые входят в as -1 null . Затем, когда вы сохраняете файл, данные возвращаются обратно в БД, сопоставьте все значения, которые не были изменены с null back to -1 .

3. Отлично! Добавит редактирование к ответу, чтобы его можно было выбрать. Удачи!