jqgrid下拉列表选择editoptions

时间:2009-11-02 05:36:00

标签: django jqgrid

我正在尝试使用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对象中它被引号包围)并且它完美地运行。

我只是猜测问题出在未加引号的数字上,但我不确定。有没有人见过这个?

此致 安德鲁

1 个答案:

答案 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, "")
    }
});

由于 安德鲁