var ItemRecord = Ext.data.Record.create([
{name:'itemid'},
{name:'itemcode'},
{name:'itemname'},
{name:'price'},
{name:'mark'}
])
//点新增按钮时则执行类似如下函数
function addNewLine2Grid(grid){
var rec = new ItemRecord({ //实例化Record对象,并赋予各字段初始值
'itemid': 0,
'itemcode': '',
'itemname': '',
'price': 0.00,
'mark': ''
})
grid.store.insert(grid.store.getCount(), rec) //插入新行作为grid最后一行
grid.getView().refresh()//刷新
//grid.plugins[1].startEditing(grid.store.getCount()-1,4)//编辑最后一行第4列
}
两种方法:1, 在后台取到数据后直接加一行空数据再送到前台, 这样的话客户端不需要做任何处理
2, 在前台store.load事件中增加空行
store.on('load', function(){
var _rec = new this.recordType()
var _key = ''
//枚举所有字段, 设置默认值
for (var i = 0i <_rec.fields.keys.lengthi++){
_key = _rec.fields.keys[i]
//record对象中每个字段初次写入的值会记录在record.modified, 用于记录被修改之前的值
_rec.data[_key] = null
//第二次根据字段类型写入默认值, record.data中记录的是默认值, record.modified中记录的是null,
//如此可以在客户端提交时区分客户端新增的记录或修改的记录
switch(_rec.fields.get(_key).type){
case 'int':
_rec.set(_key, 0)
break
case 'float':
_rec.set(_key, 0.0)
break
case 'boolean':
_rec.set(_key, false)
break
default:
_rec.set(_key, '')
break
}
}
//新增记录设置两次值, 则会在每个字段左上角显示红色三角修改标志, 用来凸显新增记录
//如果不需要判断是否客户端新增记录, 去掉第一次设置空值, 直接设置默认值即可
this.add(_rec)
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)