JQGrid раскрывающийся список выберите editoptions - PullRequest
1 голос
/ 02 ноября 2009

Я пытаюсь использовать тип редактирования: «выбрать», форматер: «выбрать» и параметры редактирования: {значения: '1: Тип1; 2: Тип2'} в моей 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}  
]

но значение для id, возвращаемое в объекте json, не является строкой (вокруг него нет кавычек). Если я удаляю edittype и editoptions, значение id появляется в столбце сетки, но когда я включаю edittype, formatter и editoptions в определение colMode, я получаю ошибку javascript
(E||"").replace is not a function

Неудачный объект json выглядит как

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

Значение id не имеет кавычек.

Я использую edittype, formatter и editoptions в других сетках, но значение, с которым я работаю, это символ (в объекте json он заключен в кавычки), и он отлично работает.

Я только догадываюсь, что проблема в кавычках, но я не уверен. Кто-нибудь видел это раньше?

С уважением Andrew

1 Ответ

0 голосов
/ 04 ноября 2009

Хорошо,

Я обнаружил, что проблема находится в строке 1067 файла jquery.1.3.2. Это функция обрезки, и код выглядит так:

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

Спасибо Andrew

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...