extJS修改页面能用renderer吗???

就是用了一个var record = grid.getSelectionModel().getSelected();选取一行 实现一个类似修改页面,但是现在显示的是int型 的 对应的应该是不同的department,但是未能显示

alterPanel = new Ext.form.FormPanel({
collapsible : true,// 是否可以展开
labelWidth : 90,
labelAlign:'right',
buttonAlign:'center',
frame : true,
bodyStyle : 'padding:5px 5px 0',
defaultType:"textfield",
items:
[{
fieldLabel:"所属部门",
id:"department_",
value:record.get("department"),
readOnly :true,
anchor:"90%"
}
],

现在record.get("department"),返回的是一个int值 而非department的汉字,能用renderer映射为汉字吗????什么语句????

第1个回答  推荐于2016-04-16
先定义一个deptStore,获取部门的id,name这样的map。
在列表显示的时候,
{
header : '部门',
width : 75,
sortable : true,
dataIndex : 'deptId',
renderer :deptRender
}
function deptRender(value, cellmeta, record, rowIndex,
columnIndex, store) {
var id = record.get("deptId");
var idx = deptStore.find("id",id);
if(idx<0){
return "未知部门";
}
return deptStore.getAt(idx).get("name");//从deptStroe中获取部门id对应的名称。
}
在修改页面:
{fieldLabel:"所属部门",
name : 'deptId',
id: 'deptId',
store : deptStore,
valueField : 'id',
displayField : 'name',
readOnly :true,//或者editable: false,
anchor:"90%"
hiddenValue : deptId,
value : deptId
}本回答被提问者采纳