代码改变世界

继承扩展DataGrid的editors

2012-08-10 17:10  java线程例子  阅读(431)  评论(0编辑  收藏  举报

@author YHC

一些常见的editors 添加到datagrid以便用户编辑数据,所有的editor都定义在$.fn.datagrid.defaults.editors对象,这个可以继承扩展以便支持新的editor,

这个教程将向你展示如何添加一个新的numberspinner编辑器 到datagrid.


查看 Demo

继承扩展numberspinner编辑器

$.extend($.fn.datagrid.defaults.editors, {  
    numberspinner: {  
        init: function(container, options){  
            var input = $('<input type="text">').appendTo(container);  
            return input.numberspinner(options);  
        },  
        destroy: function(target){  
            $(target).numberspinner('destroy');  
        },  
        getValue: function(target){  
            return $(target).numberspinner('getValue');  
        },  
        setValue: function(target, value){  
            $(target).numberspinner('setValue',value);  
        },  
        resize: function(target, width){  
            $(target).numberspinner('resize',width);  
        }  
    }  
}); 

创建DataGrid在html标记

<table id="tt" style="width:600px;height:250px"  
        url="data/datagrid_data.json" title="Editable DataGrid" iconCls="icon-edit"  
        singleSelect="true" idField="itemid" fitColumns="true">  
    <thead>  
        <tr>  
            <th field="itemid" width="60">Item ID</th>  
            <th field="listprice" width="80" align="right" editor="{type:'numberbox',options:{precision:1}}">List Price</th>  
            <th field="unitcost" width="80" align="right" editor="numberspinner">Unit Cost</th>  
            <th field="attr1" width="180" editor="text">Attribute</th>  
            <th field="status" width="60" align="center" editor="{type:'checkbox',options:{on:'P',off:''}}">Status</th>  
            <th field="action" width="80" align="center" formatter="formatAction">Action</th>  
        </tr>  
    </thead>  
</table>  
我们分配numberspinner编辑器到'unit cost' 字段,当开始编辑一行,用户可以用numberspinner 编辑器编辑数据.

下载EasyUI示例代码: