在我的数据表中使用内联单元格编辑器时,我希望将值舍入为10倍
这是我的代码:
mydatatable.subscribe("cellDblclickEvent",datatable_DetailsCommande.onEventShowCellEditor);
var onCellEdit = function(oArgs) {
var oColumn=oArgs.editor.getColumn();
var column=oColumn.getKey();
var oRecord = oArgs.editor.getRecord();
var newValue=oRecord.getData(column);
var row = this.getRecord(oArgs.target);
// calculate the modulo
n = newValue % 10;
if(n!=0)
{
newValue=parseInt(newValue);
oRecord.setData(column,eval(newValue+(10-n)));
}
}
mydatatable.subscribe("editorSaveEvent", onCellEdit);
功能结果:
在单元格中双击后,我将值更改为17,然后单击保存,我希望在我的数据表单元格中有20个但是我得到17.在第二次双击我的数据表单元格后,我在内联中获得20细胞编辑器。
如何将舍入值放在我的数据表单元格中?
的问候,
答案 0 :(得分:1)
在列定义中创建内联编辑器时,您可以指定一个执行舍入的验证器:
new YAHOO.widget.TextboxCellEditor({
validator: function(data) {
// Convert to a number
var number = data * 1;
if (!YAHOO.lang.isNumber(number)) {
return undefined;
}
var n = number % 10;
return n === 0 ? number : number + 10 - n;
}
});