天天看點

miniui datagrid中0不顯示問題解決方案

miniui繪制單元格時number類型的0會直接轉換為空字元‘’,是以顯示不出來,當然背景取值的時候轉成字元類型0也能顯示,但顯得操作多餘,不妨試試在miniui.js添加以下腳本,讓number類型的0自己顯示出來,需要添加的js代碼如下:

;(function(){

    //重寫datagrid單元格繪制事件,修複了number類型的0不顯示bug 

    mini.DataGrid.prototype._OnDrawCell=function (record, column, rowIndex, columnIndex) {

        var e = this._createDrawCellEvent(record, column, rowIndex, columnIndex);

        var value = e.value;

        if (column.dateFormat) {

            if (mini.isDate(e.value)) {

                e.cellHtml = mini.formatDate(value, column.dateFormat);

            }

            else e.cellHtml = value;

        }

        if (column.dataType == "float") {

            var value = parseFloat(e.value);

            if (!isNaN(value)) {

                decimalPlaces = parseInt(column.decimalPlaces);

                if (isNaN(decimalPlaces)) decimalPlaces = 2;

                e.cellHtml = value.toFixed(decimalPlaces);

            }

        }

        if (column.dataType == "currency") {

            e.cellHtml = mini.formatCurrency(e.value, column.currencyUnit);

        }

        if (column.displayField) {

            e.cellHtml = mini._getMap(column.displayField, record); 

        }

        if (column.numberFormat) {

            var number = parseFloat(e.cellHtml);

            if (!isNaN(number)) {

                e.cellHtml = mini.formatNumber(number, column.numberFormat);

            }

        }

        if (e.autoEscape == true) {

            e.cellHtml = mini.htmlEncode(e.cellHtml);

        }

        var renderer = column.renderer;

        if (renderer) {

            var fn = typeof renderer == "function" ? renderer : mini._getFunctoin(renderer);

            if (fn) {

                e.cellHtml = fn.call(column, e);

            }

        }

        //修改前:e.cellHtml = e.cellHtml ? String(e.cellHtml).trim() : "";

        e.cellHtml = e.cellHtml||e.cellHtml==0 ? String(e.cellHtml).trim() : "";

        this.fire("drawcell", e);

        if (e.cellHtml && !!e.cellHtml.unshift && e.cellHtml.length == 0) {

            e.cellHtml = " ";

        }

        if (e.cellHtml === null || e.cellHtml === undefined || e.cellHtml === "") e.cellHtml = " ";

        return e;

    };

})();

繼續閱讀