【分享】自己写了一个Ext 3.x Grid后台分页 + Grid数据导出为Excel示例

废话不多说,直接上菜,示例只有包括几个文件,结构如下:


分页效果如下图:


 

 

导出的Excel效果如下图:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个完整的示例,用ExtJS 6.5编,它演示了如何在Grid中编辑数据,并使用Ajax将更改保存到后端。 在这个例子中,我们将创建一个向后端服务器发送请求并接收响应的PHP脚本。它应该返回一个JSON编码的数组,我们将用来填充Grid数据。 PHP文件 fetchdata.php: ```php <?php // 模拟从服务器获取数据 $data = array( array('id'=>1, 'name'=>'张三', 'age'=>26), array('id'=>2, 'name'=>'李四', 'age'=>32), array('id'=>3, 'name'=>'王五', 'age'=>45), array('id'=>4, 'name'=>'赵六', 'age'=>18), array('id'=>5, 'name'=>'钱七', 'age'=>40) ); // 将数据返回为JSON格式 echo json_encode($data); ?> ``` 下面是ExtJS代码,包括Grid和与服务器进行通信的Ajax请求: ```javascript Ext.onReady(function(){ // 创建数据模型 Ext.define('Person', { extend: 'Ext.data.Model', fields: [ 'id', 'name', 'age' ] }); // 创建存储 var store = Ext.create('Ext.data.Store', { model: 'Person', proxy: { type: 'ajax', url: 'fetchdata.php', reader: { type: 'json', rootProperty: '' } }, autoLoad: true }); // 创建列模型 var columns = [ { text: 'ID', dataIndex: 'id' }, { text: '姓名', dataIndex: 'name', editor: 'textfield' }, { text: '年龄', dataIndex: 'age', editor: 'numberfield' } ]; // 创建Grid var grid = Ext.create('Ext.grid.Panel', { renderTo: Ext.getBody(), store: store, columns: columns, selModel: 'cellmodel', plugins: [ Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }) ], listeners: { // 在单元格编辑后立即保存更改 edit: function(editor, e){ Ext.Ajax.request({ url: 'savechanges.php', method: 'POST', jsonData: e.record.data, success: function(response, opts){ //console.log(response.responseText); var obj = Ext.decode(response.responseText); if(obj.success){ Ext.Msg.alert('成功', '数据已保存'); store.load(); } else { Ext.Msg.alert('错误', obj.error); } }, failure: function(response, opts){ Ext.Msg.alert('错误', response.statusText); } }); } } }); }); ``` 注意: - CellEditing 插件可在单元格编辑时自动保存更改。 - 在保存更改时,我们使用Ajax请求将数据发送到名为 savechanges.php 的PHP文件。 - 在保存请求成功时,我们刷新存储以便更新Grid中的数据。 下面是PHP文件savechanges.php,我们稍后将用它来保存更改: ```php <?php // 获取POST数据 $data = json_decode(file_get_contents('php://input')); // 将更改保存到数据库 // 这里是我们自己的代码,为了演示,我们只返回成功。 $response = array('success'=>true); // 将响应数据转换为JSON格式并发送回来 echo json_encode($response); ?> ``` 在本地web服务器上运行这些代码后,您应该会看到一个包含可编辑单元格的Grid。更改数据时,单元格的背景色将变为黄色,表示它们已更改但尚未保存。保存更改时,将出现保存状态或错误消息。 希望这个例子对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值