?
//创建recode结构
var recode =Ext.data.Record.create([
{name:"productProjectId",mapping:0},
{name:"productName",mapping:1},
{name:"searchBtn",mapping:2},
{name:"productNum",mapping:3},
{name:"accountMoney",mapping:4},
{name:"costMoney",mapping:5}
]);
//创建data
var data =[];
//创建reader
var reader =new Ext.data.ArrayReader({},recode);
//创建一个store返回规范的recode对象
var store =new Ext.data.Store(
{
proxy:new Ext.data.MemoryProxy(data),
reader:reader,
pruneModifiedRecords :true
});
//加载数据
store.load();
//定义表格编号
var rowNumber = new Ext.grid.RowNumberer({
sortable: true
})
//创建列
var cm = new Ext.grid.ColumnModel([
//rowNumber,
{
header: 'productProjectId',
dataIndex: 'productProjectId',
hidden: true,
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))
},
{
header:"商品/项目",
dataIndex:"productName",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true,readOnly:true}))
},
{
header:"操作",
dataIndex: 'searchBtn',
align: 'center',
renderer:function(){
return '<img src=\"'+ ctxPath +'/resource/image/systemIcon/47.png\" style=\"cursor:pointer;\" onclick=\"javascript:settleBtnExp();\" />';
}
},
{
header:"数量",
dataIndex:"productNum",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.NumberField({
allowBlank:true,
maxLength:3
}))
},
{
header:"应收金额",
dataIndex:"accountMoney",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.NumberField({allowBlank:true,readOnly:true}))
},
{
header:"实收金额",
dataIndex:"costMoney",
sortable:true,
editor:new Ext.grid.GridEditor(new Ext.form.NumberField({allowBlank:true}))
}
]);
var tbar = new Ext.Toolbar({
items:[{
text: "添加一行",
iconCls:"blist",
handler:function(){
//定义一个recode对象
var initValue={productProjectId:"",productName:"",searchBtn:"",productNum:"",accountMoney:"",costMoney:""};
var p =new recode(initValue); //根据上面创建的recode 创建一个默认值
grid.stopEditing();
store.insert(0,p);//在第一个位置插入
grid.startEditing(0,1);//指定的行/列,进行单元格内容的编辑
p.dirty=true;
p.modified=initValue;
if(store.modified.indexOf(p)==-1){
store.modified.push(p);
}
}
},"-",{
text:"删除",
iconCls:"delCls",
handler:function(){
var sm = grid.getSelectionModel();
var cell = sm.getSelectedCell();
if (Ext.isEmpty(cell)) {
Ext.Msg.alert('提示', '你没有选中行');
return ;
}
var record = store.getAt(cell[0]);
Ext.MessageBox.confirm('确认', '你确认要删除'+record.get('productName')+'这行吗?', function(btn){
if(btn=='yes'){
store.remove(record);
}
});
/* 此种方法用于带单选按钮的gridCheckboxSelectionModel
var ds = grid.getStore();
var selectedRow = grid.getSelectionModel().getSelected();
if(selectedRow){
Ext.MessageBox.confirm('确认', '你确认要删除这行吗?', function(btn){
if(btn=='yes'){
ds.remove(selectedRow);
}
});
}else{
Ext.Msg.alert("提示", "请选择一条需要删除的记录!");
}*/
}
}]
});
// 定义分页条
var bbar = getBarPaging(store, 'dtlBbarExt', false, function (){
//var keyId = Ext.getCmp("settleId").getValue();
store.reload({
params : {
start : 0,
limit : bbar.pageSize
//'memberSettleAccount.settleId': keyId
}
});
});
var grid = new Ext.grid.EditorGridPanel({
columnWidth : 1,
height: 200,
store: store,
cm: cm,
id: 'listGridDtlExp',
clicksToEdit : 1, // 单击、双击进入编辑状态
autoScroll : true,
stripeRows: true, // 斑马线
loadMask: true,
loadMask: {
msg:'正在加载数据.....'
},
tbar: tbar,
//bbar: bbar,
frame: true
})
// 检查新增行的可编辑单元格数据合法性
var m = gridstore.modified.slice(0);
for (var i = 0; i < m.length; i++) {
var record = m[i];
var rowIndex = store.indexOfId(record.id);
var value = record.get(colName);
if (Ext.isEmpty(value)) {
// Ext.Msg.alert('提示', '数据校验不合法');
return false;
}
var colIndex = cm.findColumnIndex(colName);
var editor = cm.getCellEditor(colIndex).field;
if (!editor.validateValue(value)) {
// Ext.Msg.alert('提示', '数据校验不合法');
return false;
}
}
?