jQuery EasyUI中对表格进行编辑的实现代码

jopen 11年前

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title>jQuery EasyUI</title>  <link rel="stylesheet" type="text/css" href="../themes/default/easyui.css">  <link rel="stylesheet" type="text/css" href="../themes/icon.css">  <script type="text/javascript" src="../jquery-1.4.2.min.js"></script>  <script type="text/javascript" src="../jquery.easyui.min.js"></script>  <script>  var users = {total:6,rows:[  {no:1,name:'用户1',addr:'山东济南',email:'user1@163.com',birthday:'1/1/1980'},  {no:2,name:'用户2',addr:'山东济南',email:'user2@163.com',birthday:'1/1/1980'},  {no:3,name:'用户3',addr:'山东济南',email:'user3@163.com',birthday:'1/1/1980'},  {no:4,name:'用户4',addr:'山东济南',email:'user4@163.com',birthday:'1/1/1980'},  {no:5,name:'用户5',addr:'山东济南',email:'user5@163.com',birthday:'1/1/1980'},  {no:6,name:'用户6',addr:'山东济南',email:'user6@163.com',birthday:'1/1/1980'}  ]};  $(function(){  $('#tt').datagrid({  title:'Editable DataGrid',  iconCls:'icon-edit',  width:530,  height:250,  singleSelect:true,  columns:[[  {field:'no',title:'编号',width:50,editor:'numberbox'},  {field:'name',title:'名称',width:60,editor:'text'},  {field:'addr',title:'地址',width:100,editor:'text'},  {field:'email',title:'电子邮件',width:100,  editor:{  type:'validatebox',  options:{  validType:'email'  }  }  },  {field:'birthday',title:'生日',width:80,editor:'datebox'},  {field:'action',title:'操作',width:70,align:'center',  formatter:function(value,row,index){  if (row.editing){  var s = '<a href="#" onclick="saverow('+index+')">保存</a> ';  var c = '<a href="#" onclick="cancelrow('+index+')">取消</a>';  return s+c;  } else {  var e = '<a href="#" onclick="editrow('+index+')">编辑</a> ';  var d = '<a href="#" onclick="deleterow('+index+')">删除</a>';  return e+d;  }  }  }  ]],  toolbar:[{  text:'增加',  iconCls:'icon-add',  handler:addrow  },{  text:'保存',  iconCls:'icon-save',  handler:saveall  },{  text:'取消',  iconCls:'icon-cancel',  handler:cancelall  }],  onBeforeEdit:function(index,row){  row.editing = true;  $('#tt').datagrid('refreshRow', index);  editcount++;  },  onAfterEdit:function(index,row){  row.editing = false;  $('#tt').datagrid('refreshRow', index);  editcount--;  },  onCancelEdit:function(index,row){  row.editing = false;  $('#tt').datagrid('refreshRow', index);  editcount--;  }  }).datagrid('loadData',users).datagrid('acceptChanges');  });  var editcount = 0;  function editrow(index){  $('#tt').datagrid('beginEdit', index);  }  function deleterow(index){  $.messager.confirm('确认','是否真的删除?',function(r){  if (r){  $('#tt').datagrid('deleteRow', index);  }  });  }  function saverow(index){  $('#tt').datagrid('endEdit', index);  }  function cancelrow(index){  $('#tt').datagrid('cancelEdit', index);  }  function addrow(){  if (editcount > 0){  $.messager.alert('警告','当前还有'+editcount+'记录正在编辑,不能增加记录。');  return;  }  $('#tt').datagrid('appendRow',{  no:'',  name:'',  addr:'',  email:'',  birthday:''  });  }  function saveall(){  $('#tt').datagrid('acceptChanges');  }  function cancelall(){  $('#tt').datagrid('rejectChanges');  }  </script>  </head>  <body>  <h1>Editable DataGrid</h1>  <table id="tt"></table>  </body>  </html>