Вы должны изменить код buildSelect
примерно следующим образом
buildSelect: function (data) {
var s = '<select>', codes, i, l, code, prop;
if (data && data.codes) {
codes = data.codes;
for (i = 0, l = codes.length; i < l; i++) {
code = codes[i];
// enumerate properties of code object
for (prop in code) {
if (code.hasOwnProperty(prop)) {
s += '<option value="' + prop + '">' + code[prop] + '</option>';
break; // we need only the first property
}
}
}
}
return s + "</select>";
}
Кроме того, вы должны использовать ajaxSelectOptions
для установки любых параметров соответствующего $.ajax
запроса, который вы отправляете jqGrid, если он получает данные с сервера. В любом случае вы должны использовать относительные URL-адреса, такие как json/codes.json
или /json/codes.json
вместо http://localhost/json/codes.json
.
Примером параметра ajaxSelectOptions
может быть следующий
ajaxSelectOptions: {
dataType: 'json',
cache: false
}
Если действительно требуется contentType: "application/x-javascript; charset=utf-8"
, вы можете добавить его как дополнительное свойство ajaxSelectOptions
.
Как вы можете видеть из демонстрационной версии , выбор будет произведен правильно из ваших данных JSON с помощью указанной выше функции buildSelect
. Выбор выглядит как
<select role="select" id="2_code" name="code">
<option value="code1" role="option">WFH - Work From Home</option>
<option value="code2" role="option">OST - Onsite</option>
</select>