#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. Отлично! Добавит редактирование к ответу, чтобы его можно было выбрать. Удачи!