EditorGridPanel的使用方法

本文展示了一个使用ExtJS框架创建可编辑网格面板的例子。该示例包括如何配置SimpleStore来存储数据,定义ColumnModel来设置列属性,并实现EditorGridPanel以启用单元格编辑功能。此外还介绍了如何监听编辑事件及获取修改后的数据记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

<html>
<head>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>
<script language="javascript" type="text/javascript">


var myData=[
  [0,"MysTitle_0","Dangzhao_0"],
  [1,"MysTitle_1","Dangzhao_1"],
  [2,"MysTitle_2","Dangzhao_2"],
  [3,"MysTitle_3","Dangzhao_3"],
  [4,"MysTitle_4","Dangzhao_4"]
 ];

var store = new Ext.data.SimpleStore({
  autoLoad : true,
  baseParams : {
   "Action" : "Select",
   "Id" : "0"
  },
  data : myData,
  fields : [
   { name : "id" , mapping : 0},
   { name : "name" , mapping : 2},
   { name : "title" , mapping : 1}
  ],
  id : 0,
  listeners : {
   beforeload : function(){alert("beforedload")},
   load : function(){alert("load")},
   loadexception : function(){alert("loadexception")}
   //And all SimpleStore's Event
  },
  pruneModifiedRecords : false,
  remoteSort : false//because use client data so this property must false,
 });

var colum = new Ext.grid.ColumnModel([
   {id : "id" ,header : "id" , width: 160 ,sortable: true, dataIndex : 'id'},
   {header : "name" , width: 160 , editor : new Ext.form.TextField({allowBlank: false}) ,sortable: true, dataIndex : 'name'},
   {header : "title" , width: 160 ,sortable: true, dataIndex : 'title'}
 ]);

colum.setEditable(1,true);

function modify(value){
 return "<span style=\"color:red;\">" +value +"</span>";
}

var grid = new Ext.grid.EditorGridPanel({
  store : store,
  title:'Mys GridPanel',
  height:360,
        width:600,
  collapsible : true,
  animCollapse : true,
  allowDomMove : true,
  colModel : colum ,
  clicksToEdit : 2
 });

grid.on({
 afteredit : function(e){alert(e.field+" "+e.row+"  "+e.column+"  "+e.originalValue+"  "+e.value)}
});

Ext.onReady(init);
function init(){
 grid.render("gridDiv");
 
}

function checkData(){
 var xData = grid.getStore();
 var modR = xData.getModifiedRecords();
 for(i=0;i<modR.length;i++){
  var map=modR[i].modified;
  alert(map["name"]);
 }
 
}
</script>
</head>

<body>
<input type="button" onClick="checkData()" value="Check Changed Data">

<div style="position:absolute;top:40px;left:40px;width:600px;height=360px" id="gridDiv">

</div>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值