【发布时间】:2012-03-25 12:24:46
【问题描述】:
我正在使用自定义格式化程序来显示可编辑单元格的单元格数据。如果我选择该单元格并选择任何其他单元格,单元格数据将消失并且其他单元格变得不可编辑。如果我使用取消格式化程序也无法正常工作.
我的代码是:
jQuery("#tree").jqGrid({
url:'json/jsonSamplePots.json',
datatype: "json",
mtype:'GET',
colNames: ["id", "no.", "name"],
colModel: [
{name:'id',width: 30, editable:false, align:"right",sortable:false, hidden: true, key: true},
{name:'no',width:80, editable:false, align:"left", sortable:true, sorttype:"int"},
{name:'name', width:150, editable:true, sortable:true, sorttype:"text",formatter:resourceFormatter},
],
rowNum:10,
rowList:[10,20,30],
treeGridModel:'adjacency',
treeGrid: true,
cellEdit: true,
ExpandColumn:'name',
cellsubmit : 'clientArray'});
resourceFormatter=function(cellvalue, options, rowObject)
{
var strResources='';
if( null != rowObject.name )
{
$.each(rowObject.name,function(i,Assignment)
{
if(Assignment)
{
for(i=0;i<Assignment.length;i++)
{
if(i!=0)
{
strResources=strResources+",";
}
strResources=strResources+Assignment[i].employeeName+'['+Assignment[i].assignPercent+']';
}
}
});
}
return strResources;}
我的 JSON 是::
{
"list": [
{
"id": 16731,
"no": "1",
"name": {
"resources": [
{
"employeeID": 103,
"employeeName": "Gowri",
"assignPercent": 100
},
{
"employeeID": 108,
"employeeName": "Paul",
"assignPercent": 50
},
{
"employeeID": 111,
"employeeName": "Sarfaraz",
"assignPercent": 50.5
}
]
}
}
]}
【问题讨论】:
-
JSON 数据似乎有误。
list属性必须被引用:"list"。如果您使用命名属性resources,则"name":["resources":部分也是错误的,您只能在对象内部执行此操作,因此它应该类似于"name":{"resources":或"name":[{"resources":。您能否发布固定的 JSON 数据,然后我会回答您的主要问题?我建议您验证 JSON 数据here。 -
@Oleg:谢谢您的回复。我修改了 Json 数据并发布了正确的 JSON。