1

在我的数据表中使用内联单元格编辑器时,我想将值四舍五入为 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。

如何将舍入值放在我的数据表单元格中?

问候,

4

1 回答 1

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;
    }
});
于 2010-03-31T10:37:28.063 回答