簡體   English   中英

Angular Kendo UI Grid列不會有條件地顯示數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM