轉帖|使用教程|編輯:龔雪|2016-01-29 09:19:16.000|閱讀 1041 次
概述:單元格類型并不能滿足用戶的需求,那么如何添加更加豐富的單元格類型呢?本文就來介紹如何通過flexgrid的itemFormatter功能,實現自定義編輯器。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在默認情況下,flexgrid會根據數據類型,展示不同類型的數據。比如,將數據改成bool布爾型,綁定flexgrid,這一列就會展示為CheckBox列。詳細的可以參考本系列的第一篇文章:數據綁定,在簡單數據綁定中,綁定了一個數據源,里面包含bool類型的數據,綁定后會展示為CheckBox列。
當然,這樣的單元格類型并不能滿足用戶的需求,那么如何添加更加豐富的單元格類型呢?本文就來介紹如何通過flexgrid的itemFormatter功能,實現自定義編輯器。
首先,我們通過數據綁定的文章,了解如何進行數據綁定,接著來了解itemFormatter。通過獲取或設置formatter功能來自定義單元格。這個功能提供了完整自由的形式,可以自定義單元格的樣式還有行為。
這個功能里有四個參數:GridPanel包含cell, 單元格的row和column,代表單元格的HTML元素。這個功能可以改變單元格的元素的innerHTML屬性。例如:
flex.itemFormatter = function(panel, r, c, cell) {
if (panel.cellType == CellType.Cell) {
// draw sparklines in the cell
var col = panel.columns[c];
if (col.name == 'sparklines') {
cell.innerHTML = getSparklike(panel, r, c);
}
}
}
然后,我們就可以根據以上的內容,將數據綁定文章中的日期列的單元格類型改成我們需要的,比如采用Wijmo5的InputDate控件,使得更加容易的使用。要使用InputDate控件,首先需要在頁面中引用該控件的文件,然后對控件進行初始化。引用:
<script src="scripts/wijmo.input.min.js" type="text/javascript"></script>
代碼參考:
//日期類型
itemFormatter: function (panel, r, c, cell) {
var editRange = panel.grid.editRange;
if (panel.cellType == wijmo.grid.CellType.Cell && editRange && editRange.row === r && editRange.col === c) {
if (grid.columns[c].binding == '日期') {
cell.childNodes[0].style.display = 'none';
cell.style.overflow = 'visible';
var inputDate = new wijmo.input.InputDate(cell, {
value: new Date(cell.childNodes[0].value),
});
var editEndingEH = function (s, e) {
grid.cellEditEnding.removeHandler(editEndingEH);
if (!e.cancel) {
panel.grid.setCellData(r, c, inputDate.value);
e.cancel = true;
}
}
grid.cellEditEnding.addHandler(editEndingEH);
}
}
}
根據以上描述,日期列就會變成wijmo的InputDate控件,源碼請下載:
根據這種方式,將列改成自己所需要的形式。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自:慧都控件網