[英]Angular Kendo UI Grid column not display data conditionally
如果從數據庫返回的值為-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));
}
}
是否要允許用戶編輯該特定字段? 如果沒有,那么您可以繼續進行設置,並有條件地將類"k-grid-ignore-click"
到值為-1的單元格中。 這將阻止用戶單擊單元格以顯示-1
值。
有關這方面的更多信息,請在此處查看Telerik文檔。
編輯:如果您仍然希望允許用戶編輯該字段,我建議您設置一個服務來提取數據並對其進行格式化。 這樣,您可以將此特定字段中以-1
為單位的任何值映射為null
。 將數據保存回db時,將所有未從null
更改的值映射回-1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.