龙岗住房建设局网站,手机网站用什么制作,前端开发培训费用,wordpress课堂jQuery EasyUI 应用 - 创建 CRUD 数据网格#xff08;DataGrid#xff09;
在上一个教程中#xff0c;我们使用了 dialog 弹窗来实现 CRUD 操作。本教程将展示如何直接在 DataGrid 中实现可编辑的 CRUD 功能#xff0c;即“行内编辑”#xff08;inline editing#xff…jQuery EasyUI 应用 - 创建 CRUD 数据网格DataGrid在上一个教程中我们使用了dialog弹窗来实现 CRUD 操作。本教程将展示如何直接在DataGrid中实现可编辑的 CRUD 功能即“行内编辑”inline editing模式用户可以直接点击单元格编辑数据而无需弹出对话框。这种方式更紧凑、直观适合数据列表密集的场景。我们将使用 EasyUI 的datagrid内置编辑器editor来实现创建append 新行、读取加载数据、更新编辑行和删除remove 行操作。官方教程参考https://www.jeasyui.com/tutorial/app/crud2.phpBuild CRUD DataGrid with jQuery EasyUI步骤 1: 引入 EasyUI 资源使用最新版本的 CDN截至 2025 年EasyUI 仍在维护推荐使用官网 CDN 或下载最新包linkrelstylesheettypetext/csshrefhttps://www.jeasyui.com/easyui/themes/default/easyui.csslinkrelstylesheettypetext/csshrefhttps://www.jeasyui.com/easyui/themes/icon.cssscripttypetext/javascriptsrchttps://code.jquery.com/jquery-1.12.4.min.js/scriptscripttypetext/javascriptsrchttps://www.jeasyui.com/easyui/jquery.easyui.min.js/script步骤 2: 创建可编辑 DataGrid在th中定义editor属性来指定每个列的编辑器类型。tableiddgtitleMy Usersstylewidth:700px;height:400pxtoolbar#toolbaridFieldidrownumberstruefitColumnstruesingleSelecttruetheadtrthfieldfirstnamewidth50editor{type:validatebox,options:{required:true}}First Name/ththfieldlastnamewidth50editor{type:validatebox,options:{required:true}}Last Name/ththfieldphonewidth50editortextPhone/ththfieldemailwidth80editor{type:validatebox,options:{validType:email}}Email/th/tr/thead/tabledividtoolbarahrefjavascript:void(0)classeasyui-linkbuttoniconClsicon-addplaintrueonclickappend()Append Row/aahrefjavascript:void(0)classeasyui-linkbuttoniconClsicon-removeplaintrueonclickremoveit()Remove Row/aahrefjavascript:void(0)classeasyui-linkbuttoniconClsicon-saveplaintrueonclickaccept()Accept Changes/aahrefjavascript:void(0)classeasyui-linkbuttoniconClsicon-undoplaintrueonclickreject()Reject Changes/a/div步骤 3: JavaScript 实现行内 CRUD 操作scripttypetext/javascriptvareditIndexundefined;functionendEditing(){if(editIndexundefined){returntrue}if($(#dg).datagrid(validateRow,editIndex)){$(#dg).datagrid(endEdit,editIndex);editIndexundefined;returntrue;}else{returnfalse;}}functiononClickCell(index,field){if(editIndex!index){if(endEditing()){$(#dg).datagrid(selectRow,index).datagrid(beginEdit,index);vared$(#dg).datagrid(getEditor,{index:index,field:field});if(ed){($(ed.target).data(textbox)?$(ed.target).textbox(textbox):$(ed.target)).focus();}editIndexindex;}else{$(#dg).datagrid(selectRow,editIndex);}}}functionappend(){if(endEditing()){$(#dg).datagrid(appendRow,{});editIndex$(#dg).datagrid(getRows).length-1;$(#dg).datagrid(selectRow,editIndex).datagrid(beginEdit,editIndex);}}functionremoveit(){if(editIndexundefined){return}$(#dg).datagrid(cancelEdit,editIndex).datagrid(deleteRow,editIndex);editIndexundefined;}functionaccept(){if(endEditing()){$(#dg).datagrid(acceptChanges);// 这里可以提交所有更改到服务器例如// var rows $(#dg).datagrid(getChanges);// $.post(save_changes.php, {data: JSON.stringify(rows)}, function(result){ ... });}}functionreject(){$(#dg).datagrid(rejectChanges);editIndexundefined;}$(function(){$(#dg).datagrid({onClickCell:onClickCell});});/script关键说明点击单元格编辑通过onClickCell事件实现点击即编辑。新增行append()添加空行并进入编辑模式。删除行选中行后删除实际项目中需确认并调用服务器删除。保存更改acceptChanges()确认所有编辑。实际应用中需要调用getChanges()获取修改的行inserted/updated/deleted然后 AJAX 提交到后端如 PHP 的save_user.php。后端支持后端需处理批量保存例如接收 JSON 数据进行 insert/update/delete。高级扩展服务器端加载数据添加urlget_users.php支持分页和远程加载。自动保存在onAfterEdit事件中 AJAX 保存单行。另一种方式使用edatagrid扩展需额外引入 datagrid-editable.js它内置更多 CRUD 方法如$(#dg).edatagrid({saveUrl:save.php, destroyUrl:delete.php});。更多示例官方行内编辑 CRUDhttps://www.jeasyui.com/tutorial/app/crud2.php展开行编辑https://www.jeasyui.com/tutorial/app/crud3.php如果需要结合服务器端 PHP/MySQL 示例、批量保存代码或其他变体如搜索分页请提供更多细节