扩展编辑器


一些常见的编辑器(editor)添加到数据网格(datagrid),以便用户编辑数据。 所有的编辑器(editor)都定义在 $.fn.datagrid.defaults.editors 对象中,这个可以继承扩展以便支持新的编辑器(editor)。 本教程将向您展示如何添加一个新的 numberspinner 编辑器到数据网格(datagrid)。

继承扩展 numberspinner 编辑器

  1. $.extend($.fn.datagrid.defaults.editors, {
  2. numberspinner: {
  3. init: function(container, options){
  4. var input = $('<input type="text">').appendTo(container);
  5. return input.numberspinner(options);
  6. },
  7. destroy: function(target){
  8. $(target).numberspinner('destroy');
  9. },
  10. getValue: function(target){
  11. return $(target).numberspinner('getValue');
  12. },
  13. setValue: function(target, value){
  14. $(target).numberspinner('setValue',value);
  15. },
  16. resize: function(target, width){
  17. $(target).numberspinner('resize',width);
  18. }
  19. }
  20. });

在 html 标记中创建数据网格(DataGrid)

  1. <table id="tt" style="width:600px;height:250px"
  2. url="data/datagrid_data.json" title="Editable DataGrid" iconCls="icon-edit"
  3. singleSelect="true" idField="itemid" fitColumns="true">
  4. <thead>
  5. <tr>
  6. <th field="itemid" width="60">Item ID</th>
  7. <th field="listprice" width="80" align="right" editor="{type:'numberbox',options:{precision:1}}">List Price</th>
  8. <th field="unitcost" width="80" align="right" editor="numberspinner">Unit Cost</th>
  9. <th field="attr1" width="180" editor="text">Attribute</th>
  10. <th field="status" width="60" align="center" editor="{type:'checkbox',options:{on:'P',off:''}}">Status</th>
  11. <th field="action" width="80" align="center" formatter="formatAction">Action</th>
  12. </tr>
  13. </thead>
  14. </table>

我们分配 numberspinner 编辑器到 'unit cost' 字段。 当开始编辑一行,用户可以通过 numberspinner 编辑器来编辑数据。

下载 jQuery EasyUI 实例

下载地址