您的位置:首页 > 其它

請問EXT GRID 如何通過rowIndex和columnIndex改變列內容?

2012-01-07 01:10 162 查看
如下拿出行列出來后請問如何根據這個值改變對應單元格的內容?

 

function cellclick(grid, rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);   //Get the Record
var fieldName = grid.getColumnModel().getDataIndex(columnIndex); //Get field name
var data = record.get(fieldName);
Ext.MessageBox.alert("show","当前选中的数据是:"+data + "行:"+rowIndex+"列:"+columnIndex);
}

答:

要改变单元格里的内容最终还是要修改数据源

  var record = grid.getStore().getAt(rowIndex); //找到这一行

  record.set("dataIndex的值","修改后的值");           

 

例:

grid:

this.fields = new Ext.data.Record.create([{
name : 'position'
}, {
name : 'personnelname'
}, {
name : 'mobile'
}, {
name : 'agencyname'
}, {
name : 'personnel_id'
}, {
name : 'agencyid'
}]);
this.store = new Ext.data.Store({
reader : new Ext.data.JsonReader({
fields : panel.fields
})
});

function getpositionimage(val) {
var src='<img src=images/user.png></img>';
switch(val)
{
case 9:
src='<img src=images/user_red.png></img>';
break;
case 1:
src='<img src=images/user.png></img>';
break;
default:
src='<img src=images/user.png></img>';
}
return src;
}

this.cm = new Ext.grid.ColumnModel([panel.sm, {
id : 'position',
dataIndex : 'position',
header : '职位',
renderer : getpositionimage,
width : 30
}, {
id : 'personnelname',
dataIndex : 'personnelname',
header : '工号-姓名',
width : 120
}, {
id : 'mobile',
dataIndex : 'mobile',
header : '联系电话',
width : 80
}, {
id : 'agencyname',
dataIndex : 'agencyname',
header : '单位名称'
}, {
id : 'personnel_id',
dataIndex : 'personnel_id',
header : '人员ID',
hidden : true
}, {
id : 'agencyid',
dataIndex : 'agencyid',
header : '机构ID',
hidden : true
}]);
this.carListGrid = new Ext.grid.GridPanel({
id : 'searchTab',
layout : 'fit',
title : '查询结果',
autoScroll : true,
trackMouseOver : true,
border : false,
sm : panel.sm,
cm : panel.cm,
store : panel.store,
listeners : {
'cellcontextmenu' : function(grid, row, cell, e) {
//grid.getSelectionModel().selectRow(row, true);
selRow = grid.getStore().getAt(row);/*
grid.getSelectionModel().fireEvent('rowselect',
grid.getSelectionModel(), row,
grid.getStore().getAt(row));*/
nodeid = -selRow.get('agencyid');
id = selRow.get('personnel_id');
if (id > 0) {
c = panel.contextMenu;
c.showAt(e.getXY());
}
e.preventDefault();
e.stopPropagation();
return false;
},
'contextmenu' : function(e) {
e.preventDefault();
return false;
},
'rowdblclick' : function(grid) {
selRow = grid.getSelectionModel().getSelected();
nodeid = -selRow.get('agencyid');
id = selRow.get('personnel_id');
panel.editPersonnel();
/*
curSelUnitId = [];
curSelCalls = [];
selCallsHash.clear();
curSelNumberPlates = [];
curSelNumberPlates.push(row.get('number_plate'));
curSelUnitId.push(row.get('unitid'));
curSelCalls.push(row.get('callletter'));
selCallsHash.push(row.get('callletter'), row
.get('unitid'));*/
}
}
});


 

 

更换值:

formPanel.getForm().submit({
waitTitle : '请稍候',
waitMsg : '正在提交表单数据,请稍候.......',
url : 'servlet/UserServlet',
method : 'post',
params : {
type : 'updateUserPersonnel'
},
success : function(f, action) {
Ext.Msg.alert('提示!', '修改成功!');
if (panel.personnel_position.getValue() == 9) {
personnelNode.setIcon('images/user_red.png');
}
var activetab=panel.treetabpanel.getActiveTab();
if(activetab.id!='searchTab'){
personnelNode.setText(panel.personnelcode
.getValue()
+ '-' + panel.personnelname.getValue());
}else{//下面两句是实用实例,本来计划标为红色,结果好象这个编辑器解析不出来
selRow.set('personnelname',panel.personnelcode.getValue()+'-'+panel.personnelname.getValue());
selRow.set('mobile',panel.mobile.getValue());
}
},
failure : function(f, action) {
switch (action.failureType) {
case Ext.form.Action.CLIENT_INVALID :
Ext.Msg.alert('错误!', '存在未通过验证的数据!');
break;
case Ext.form.Action.CONNECT_FAILURE :
Ext.Msg.alert('错误!', '连接错误!');
break;
case Ext.form.Action.SERVER_INVALID :
Ext.Msg.alert('错误!',
action.result.hm.opro_desc);
}
}
});


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息