MiniUI Datagrid單元格繪製時number型別的0不顯示問題解決方案
*注:miniui繪製單元格時number型別的0會直接轉換為空字元‘’,所以顯示不出來,當然後臺取值的時候轉成字元型別0也能顯示,但顯得操作多餘,不妨試試在miniui.js新增以下指令碼,讓number型別的0自己顯示出來
;(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; }; })();