easyUI点击编辑操作实现行编辑,点击取消编辑取消编辑,点击添加实现添加行操作

html 复制代码
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>EasyUI DataGrid 编辑操作示例</title>
  <!-- 引入 EasyUI 的 CSS 和 JavaScript 文件 -->
  <link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/default/easyui.css">
  <script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.min.js"></script>
  <script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
</head>
<body>
  <!-- 初始化 datagrid 组件 -->
<table id="datagrid"></table>

  <script>
$(function() {
  $('#datagrid').datagrid({
    data:[
  {
    "id": 1,
    "name": "张三",
    "age": 30,
    "gender": "男"
  },
  {
    "id": 2,
    "name": "李四",
    "age": 25,
    "gender": "女"
  },
  {
    "id": 3,
    "name": "王五",
    "age": 40,
    "gender": "男"
  },
  {
    "id": 4,
    "name": "赵六",
    "age": 22,
    "gender": "女"
  },
  {
    "id": 5,
    "name": "孙七",
    "age": 28,
    "gender": "男"
  }
],
    toolbar: [{
      text: '添加',
      iconCls: 'icon-edit',
      handler: function() {
		$('#datagrid').datagrid('insertRow',{
	index: 0,	// index start with 0
	row: {
		name: 'new name',
		age: 30,
		gender: '男'
	}
});
      }
    }],
    columns: [[
      {field:'id', title:'ID', width:100},
      {field:'name', title:'姓名', width:100, editor:'text'},
      {field:'age', title:'年龄', width:100, editor:'numberbox'},
      {field:'gender', title:'性别', width:100, editor:{
        type: 'combobox',
        options: {
          valueField: 'value',
          textField: 'text',
          data: [{value:'男', text:'男'},{value:'女', text:'女'}]
        }
      }},
	              {field:'action',title:'Action',width:100,
                formatter:function(value,row,index){
                    return '<a href="#" onclick="editRow('+index+')">Edit</a> '+' <a href="#" onclick="cancleRow('+index+')">cancle</a>';
                }
            }
    ]],
    onBeforeEdit: function(index, row) {
      row.editing = true;  // 标记行为编辑状态
      $('#datagrid').datagrid('refreshRow', index);  // 刷新行数据
    },
    onAfterEdit: function(index, row) {
      row.editing = false;  // 取消编辑状态
      $('#datagrid').datagrid('refreshRow', index);  // 刷新行数据
    },
    onCancelEdit: function(index, row) {
      row.editing = false;  // 取消编辑状态
      $('#datagrid').datagrid('refreshRow', index);  // 刷新行数据
    }
  });

});
  function editRow(index){
    $('#datagrid').datagrid('beginEdit', index);
}

  function cancleRow(index){
    $('#datagrid').datagrid('cancelEdit', index);
}

  </script>
</body>
</html>
相关推荐
五月君_6 分钟前
炸裂!Claude Opus 4.6 与 GPT-5.3 同日发布:前端人的“自动驾驶“时刻到了?
前端·gpt
Mr Xu_11 分钟前
前端开发中CSS代码的优化与复用:从公共样式提取到CSS变量的最佳实践
前端·css
低代码布道师32 分钟前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
鹏北海-RemHusband1 小时前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构
LYFlied1 小时前
AI大时代下前端跨端解决方案的现状与演进路径
前端·人工智能
光影少年1 小时前
AI 前端 / 高级前端
前端·人工智能·状态模式
一位搞嵌入式的 genius1 小时前
深入 JavaScript 函数式编程:从基础到实战(含面试题解析)
前端·javascript·函数式
anOnion1 小时前
构建无障碍组件之Alert Dialog Pattern
前端·html·交互设计
choke2331 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
云飞云共享云桌面1 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能