我从后台返回一个数据集 用Grid显示 其中性别 职务都是数字 是字典ID 我打算在deferer的时候 将数字更新为汉字
[code="java"]
//-->数据列
var Employee_cm = new Ext.grid.ColumnModel
([
......
{header:'性别',dataIndex:'SexID',width:100,editor:Employee_SexCombox,
renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){
return GetDictionaryNameByID(record.data["SexID"]);
}
},
]);
//翻译字典的公共函数
function GetDictionaryNameByID(DictionaryID)
{
Ext.Ajax.request
({
url : 'JSON/System/Dictionary.aspx',
params:
{
FunctionName : 'Sys_Dictionary_GetDictionaryName',
DictionaryID : DictionaryID
},
failure : function(response,option)
{
return '';
},
success : function(response,option)
{
if (Ext.util.JSON.decode(response.responseText).success)
{
var temp_infoObject = Ext.util.JSON.decode(response.responseText);
return temp_infoObject.info;
}
else
{
return '';
}
}
})
}
[/code]
但是 我发现grid每次翻译后都是空 后台返回值用FireBug调试是:{success:true,info:"男"} 请教一下大家为什么?如果我把GetDictionaryNameByID返回值写死 就可以翻译成功。。。。
[b]问题补充:[/b]
Rooock:
我用调试了 数据取到后台 没有问题
蔡华江:
record.data["SexID"]); 我这样写 可以取得数据
record.get("SexID"); 反倒不能得到数据 会后台报错
大家平时是怎么解决Grid字典项翻译的?也说一下 谢谢
[b]问题补充:[/b]
Rooock:
// 你是说这里temp_infoObject.info是男. 但是显示不了?
return temp_infoObject.info;
是的 程序有运行到这里 但是最终 GetDictionaryNameByID(DictionaryID)函数返回值时空
如果我在GetDictionaryNameByID 一开始就声明一个变量StrRetrun = 在各个return的地方 给这个变量赋值 最后返回 StrRetrun变量 就发现 最终grid显示的是'ddd' 但是在FF中调试 发现确实在success : function(response,option) 的时候 给StrRetrun赋过'男'的。。。。
[b]问题补充:[/b]
蔡华江:
原来是这样 我在原理上就错误了 没有理解正确 谢谢。
请问 你是怎么解决这个问题的呢? 翻译Grid中的字典项
最好能贴段代码 小弟这里谢过