阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      EasyUI 数据网格 – 启用行内编辑

      EasyUI 数据网格 - 启用行内编辑

      可编辑的功能是最近添加到数据网格(datagrid)的。它可以使用户添加一个新行到数据网格(datagrid)。用户也可以更新一个或多个行。

      本教程向您展示如何创建一个数据网格(datagrid)和内联编辑器。

      创建数据网格(DataGrid)

      $(function(){
              $('#tt').datagrid({
                  title:'Editable DataGrid',
                  iconCls:'icon-edit',
                  width:660,
                  height:250,
                  singleSelect:true,
                  idField:'itemid',
                  url:'datagrid_data.json',
                  columns:[[
                      {field:'itemid',title:'Item ID',width:60},
                      {field:'productid',title:'Product',width:100,
                          formatter:function(value){
                              for(var i=0; i<products.length; i++){
                                  if (products[i].productid == value) return products[i].name;
                              }
                              return value;
                          },
                          editor:{
                              type:'combobox',
                              options:{
                                  valueField:'productid',
                                  textField:'name',
                                  data:products,
                                  required:true
                              }
                          }
                      },
                      {field:'listprice',title:'List Price',width:80,align:'right',editor:{type:'numberbox',options:{precision:1}}},
                      {field:'unitcost',title:'Unit Cost',width:80,align:'right',editor:'numberbox'},
                      {field:'attr1',title:'Attribute',width:150,editor:'text'},
                      {field:'status',title:'Status',width:50,align:'center',
                          editor:{
                              type:'checkbox',
                              options:{
                                  on: 'P',
                                  off: ''
                              }
                          }
                      },
                      {field:'action',title:'Action',width:70,align:'center',
                          formatter:function(value,row,index){
                              if (row.editing){
                                  var s = '<a href="#" onclick="saverow(this)">Save</a> ';
                                  var c = '<a href="#" onclick="cancelrow(this)">Cancel</a>';
                                  return s+c;
                              } else {
                                  var e = '<a href="#" onclick="editrow(this)">Edit</a> ';
                                  var d = '<a href="#" onclick="deleterow(this)">Delete</a>';
                                  return e+d;
                              }
                          }
                      }
                  ]],
                  onBeforeEdit:function(index,row){
                      row.editing = true;
                      updateActions(index);
                  },
                  onAfterEdit:function(index,row){
                      row.editing = false;
                      updateActions(index);
                  },
                  onCancelEdit:function(index,row){
                      row.editing = false;
                      updateActions(index);
                  }
              });
          });
          function updateActions(index){
              $('#tt').datagrid('updateRow',{
                  index: index,
                  row:{}
              });
          }
      

      为了启用数据网格行内编辑,您应该添加一个 editor 属性到列中。编辑器(editor)会告诉数据网格(datagrid)如何编辑字段及如何保存字段值。正如您所看到的,我们定义的三个编辑器(editor):text、combobox 和 checkbox。

      function getRowIndex(target){
          var tr = $(target).closest('tr.datagrid-row');
          return parseInt(tr.attr('datagrid-row-index'));
      }
      function editrow(target){
          $('#tt').datagrid('beginEdit', getRowIndex(target));
      }
      function deleterow(target){
          $.messager.confirm('Confirm','Are you sure?',function(r){
              if (r){
                  $('#tt').datagrid('deleteRow', getRowIndex(target));
              }
          });
      }
      function saverow(target){
          $('#tt').datagrid('endEdit', getRowIndex(target));
      }
      function cancelrow(target){
          $('#tt').datagrid('cancelEdit', getRowIndex(target));
      }
      
      卖前端学习教程

      只需几十元,就能买到培训班的内部教程!开启高薪之路!

      零基础小白阿里P7的教程都有!

      同时长期收购所有培训班的前端教程

      目录
      目录