开发者

jqgrid dropdown select editoptions

开发者 https://www.devze.com 2022-12-10 10:46 出处:网络
I am trying to use the edittype:\"select\", formatter:\"select\" and editoptions:{values:\'1:Type1;2:Type2\'} in m开发者_StackOverflow社区y colModel

I am trying to use the edittype:"select", formatter:"select" and editoptions:{values:'1:Type1;2:Type2'} in m开发者_StackOverflow社区y 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}  
]

but the value for id returned in the json object is not a string (it doesn't have quotes around it). If I remove the edittype and editoptions the id value appears in the column of the grid but when I include the edittype, formatter and editoptions in the colMode definition I get the javascript error

(E||"").replace is not a function

The json object that fails looks like

 { "pk": 120  
   "model": "myModel"  
   "fields": {  
       "id": 1,
       "type": "aType"
   }
  }

The id value has no quotes.

I am using the edittype, formatter and editoptions in other grids but the value I am macthing against is a character (in the json object it is surrounded by quotes) and it works perfectly.

I am only guessing that the problem is with the unquoted number but I am not sure. Has anyone seen this before?

Regards Andrew


Ok,

I found that the problm is on line 1067 of the jquery.1.3.2 file. It is the trim function and the code looks like this:

trim:function(text) {  
  return (text||"").replace(/^\s+|\s+$/g, "")
}

I changed it to this:

trim:function(E) {  
  return (text.toString()||"").replace(/^\s+|\s+$/g, "")
}

and now it works.

Can anyone tellme if this is a bug or is there something else I can do to overide ths function without changing the jquery file.

Function Override: Placed in the head of any page that shows this problem.

$.extend({
    trim:function(E) {  
      return (text.toString()||"").replace(/^\s+|\s+$/g, "")
    }
});

Thanks Andrew

0

精彩评论

暂无评论...
验证码 换一张
取 消