yui数据表内联单元格编辑器问题

时间:2010-03-31 10:25:54

标签: yui yui-datatable

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

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

的问候,

1 个答案:

答案 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;
    }
});