gridpanel某一列可编辑和某一列加复选框

a349051255 2014-04-25 11:08:49
菜鸟现在有两个问题:1,gridpanel和store绑定之后,数据也能正常显示在grid上,可现在要求把数据中的某一列编辑为手动输入,不知道是在远grid上设置,还是在store中设置;
2,在另外一个grid前面添加一个复选框,就是可以选择某一行数据,然后可以点“修改”按钮,现在这个复选框的问题不知道怎么添加进去,而且只能单选其中一行进行修改。
两个问题现在主要是第一个问题,要编辑数据之后,保存返回到后台,现在就卡在我这个地方,后面的数据进行不了。
请求大神帮忙,能有可行的代码加进去更好。
...全文
303 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
a349051255 2014-04-25
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
可编辑在column中设置,editor:{xtype:'textfield',allowBlank:false},
刚刚我们项目组长给了另外一个方法,版主可以看下 我是在Sencha Architect上运行实现的,组长在store显示的数据组中添加了CellEditingPlugin事件,再在grid中添加了
xtype: 'gridcolumn',
                                            width: 50,
                                            dataIndex: 'mark',
                                            text: 'Mark',
                                            editor: {
                                                xtype: 'textfield',
                                                enableKeyEvents: true
                                            }
这一句,也能实现列的编辑问题。 不过版主知道怎么在下面添加的保存按钮中添加保存的代码? 组长写的是var store=Ext.getCmp('gridZhuguan').store; 还要添加updataData()代码么?
引用 1 楼 bdmh 的回复:
可编辑在column中设置,editor:{xtype:'textfield',allowBlank:false},
a349051255 2014-04-25
  • 打赏
  • 举报
回复
版主很强大,这个方法可行。
bdmh 2014-04-25
  • 打赏
  • 举报
回复
可编辑在column中设置,editor:{xtype:'textfield',allowBlank:false},

 	 var rolecols = [{
	 		width:25,
	 		renderer:function(value)
	 		{
	 			return '<img src= ././image/role.png />';
	 		}
	 	},{
 	 	text:'角色编号',
 	 	dataIndex:'rolecode',
 	 	width:100
 	 },{
 	 	text:'角色名称',
 	 	dataIndex:'rolename',
 	 	editor:{xtype:'textfield',allowBlank:false},
 	 	width:200
 	 },{
 	 	text:'描述',
 	 	dataIndex:'describe',
 	 	editor:{xtype:'textfield'},
 	 	flex:1
 	 }];
gridpanel中设置列为上面的变量

	 var gridrole = Ext.create('RoleGrid',{
	 	id:'gridrole',
	 	columns:rolecols,
	 	tbar:rolebar,
	 	border:false,
	 	plugins: [
	        Ext.create('Ext.grid.plugin.CellEditing', {
	            clicksToEdit: 1
	        })]
	 });
bdmh 2014-04-25
  • 打赏
  • 举报
回复
引用 3 楼 a349051255 的回复:
不过版主知道怎么在下面添加的保存按钮中添加保存的代码?
[/quote]

	 			{
	 				text:'保存',
	 				iconCls:'saveicon',
	 				handler:function(){
	 					gridrolestore.sync({
	 						success:function(optional){
	 							Ext.MessageBox.alert('提示','保存成功');
	 						}
	 					});
	 				}
	 			},
我用的是批量提交的方法,调用store的sync方法,它会将所有修改的记录组织成json传递到后台 下面是store的定义,里面定义了api

 	 var gridrolestore = Ext.create('Ext.data.Store',{
 	 	model:Role_Model,
 	 	proxy:{
 	 		type:'ajax',
// 	 		url:'././RoleServlet',
 	 		api:{
					read:'././RoleServlet',
					create:'././RoleServlet?optype='+OPERATION_NEW,
					update:'././RoleServlet?optype='+OPERATION_EDIT,
					destroy:'././RoleServlet?optype='+OPERATION_DEL
				},
 	 		reader:{
 	 			type:'json',
 	 			root:'items',
 	 			idProperty:'rolecode',
 	 			messageProperty:'msg'
 	 		},
 	 		writer:{
					type:'json',
					writeAllFields:false,
					root:'data',
					allowSingle:false
			}
 	 	}
 	 });
googny 2014-04-25
  • 打赏
  • 举报
回复
引用 3 楼 a349051255 的回复:
[quote=引用 1 楼 bdmh 的回复:] 可编辑在column中设置,editor:{xtype:'textfield',allowBlank:false},
刚刚我们项目组长给了另外一个方法,版主可以看下 我是在Sencha Architect上运行实现的,组长在store显示的数据组中添加了CellEditingPlugin事件,再在grid中添加了
xtype: 'gridcolumn',
                                            width: 50,
                                            dataIndex: 'mark',
                                            text: 'Mark',
                                            editor: {
                                                xtype: 'textfield',
                                                enableKeyEvents: true
                                            }
这一句,也能实现列的编辑问题。 不过版主知道怎么在下面添加的保存按钮中添加保存的代码? 组长写的是var store=Ext.getCmp('gridZhuguan').store; 还要添加updataData()代码么?
引用 1 楼 bdmh 的回复:
可编辑在column中设置,editor:{xtype:'textfield',allowBlank:false},
[/quote] 刚用Ext做完一个工程,也是操纵大量ChineseTable的 。 回到问题。”“” 不过版主知道怎么在下面添加的保存按钮中添加保存的代码?“”“ 简单说下我理解的store 你从后台取得的数据,应该是先配置到store里面,然后再将store配置到grid里面。(注意columns和fields的对应,col应该是fields的子集。) 这时候你在前台做的任何编辑表格的东西,都不回对store造成实质的数据变化。因为每一条record都有一个raw数值,来保存原来的数据。 这时候::: 1、你如果只是想暂时的保存在客户端,可以使用sync方法,就可以将数据同步到前台也就是单元格的左上角的小红点消失了。 2、如果想保存到客户端,就从store里取数据,发送到server保存,然后回显到前台,也能实现同步。 可能一些名词或想法解释有错。 具体的可以查下DOCS。 祝好!

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧