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 になりました。

丸められた値をデータテーブルセルに入れる方法は?

よろしく、

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 に答える