其中一列在我的handsontable定製渲染器有以下要求:不同的基礎上,是不是表的一部分值Handsontable - 根據單元格值
設置單元格顏色。以下是完整的代碼 -
var objectData = [
{id: 1, name: "Ted Right", address: "NY", value:{old_value:"10", new_value:"15"}},
{id: 2, name: "Frank Honest", address: "CA", value:{old_value:"12", new_value:"12"}},
{id: 3, name: "Joan Well", address: "TX", value:{old_value:"20", new_value:"28"}}
];
var valueRenderer = function (instance, td, row, col, prop, value, cellProperties) {
var background_color = '';
if (value.old_value == value.new_value) {
background_color = 'white';
} else {
background_color = 'yellow';
}
value = value.new_value;
Handsontable.renderers.NumericRenderer.apply(this, arguments);
$(td).css({
background: background_color
});
};
如果old_value不等於new_value,那麼在這個「Value」列中需要着黃色,否則背景應該是白色的。首先,我將new_value和old_value放置在數據源中嵌套的「值」項中。這工作,但它造成的其他問題:
- 當您單擊編輯細胞時,它顯示「[對象的對象]」,而不是價值 - 這是有道理的,因爲我已經在通過「價值」列清單,而不是
- 背景顏色不保留到解決這個問題將有一個包含OLD_VALUE隱藏列,並用它來比較和設置
單向「value.new_value」渲染器。但是,如果表格有10列或更多,並且如果每列都需要根據上述條件進行着色,則會很快變得太大(在保存功能期間也需要特殊處理)
什麼是最好的如何做到這一點?
您是否找到針對您的問題的解決方案?因爲我需要傳遞一個對象作爲值來做一些驗證。 – SuperMarco 2015-09-10 16:02:34