我正在尝试使用edittype:“select”,formatter:“select”和editoptions:{values:'1:Type1; 2:Type2'}在我的colModel中
colModel : [
{name:'pk', index:'pk', width:20, sortable:true, jsonmap:'pk',
sorttype:'integer'},
{name:'id', index:'id', align:'left', jsonmap:'fields.id',
sortable:true, editable:true, edittype:'select', formatter:'select',
editoptions:{value:'1:value1;2:value2;3:value3'},
{name:'type', index:'type', width:100,align:'center',
jsonmap:'fields.type', sortable:true,editable:true}
]
但json对象中返回的id值不是字符串(它周围没有引号)。如果我删除了edittype和editoptions,则id值出现在网格的列中,但是当我在colMode定义中包含edittype,formatter和editoptions时,我收到javascript错误
(E||"").replace is not a function
失败的json对象看起来像
{ "pk": 120
"model": "myModel"
"fields": {
"id": 1,
"type": "aType"
}
}
id值没有引号。
我正在使用其他网格中的edittype,formatter和editoptions但是我正在对照的值是一个字符(在json对象中它被引号包围)并且它完美地运行。
我只是猜测问题出在未加引号的数字上,但我不确定。有没有人见过这个?
此致 安德鲁
答案 0 :(得分:0)
确定,
我发现问题在jquery.1.3.2文件的第1067行。它是trim函数,代码如下所示:
trim:function(text) {
return (text||"").replace(/^\s+|\s+$/g, "")
}
我把它更改为:
trim:function(E) {
return (text.toString()||"").replace(/^\s+|\s+$/g, "")
}
现在它有效。
任何人都可以告诉我这是否是一个错误,或者我可以做些什么来覆盖这个函数而不更改jquery文件。
功能覆盖:放置在显示此问题的任何页面的头部。
$.extend({
trim:function(E) {
return (text.toString()||"").replace(/^\s+|\s+$/g, "")
}
});
由于 安德鲁