Я использую JSON для извлечения значений для элемента select.
мой colModel
является:jqGrid editotype: 'select, formatter:' select 'not working
{ name: 'position', editable: true, edittype: "select", formatter:'select',
editoptions: {
value: function() {
var positions;
$.ajax({
url: "orthofixServices.asmx/GetPositionsList",
data: "{}",
async: false,
success: function(data) {
positions = data.d;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
return positions;
}
это ответ:
{
"d": {
"21": "CAP Pos 1",
"41": "CAP Pos 2",
"42": "CAP Pos 3"
}
}
И строка отправляется обратно с сервера, чтобы связать сетки
{
"d": {
"page": 1,
"total": 1,
"records": 1,
"rows": [
{
"id": 9,
"name": "Julio",
"nameid": 0,
"title": "Doctor",
"npi": "123-123",
"license": "licabc",
"licstate": "NV",
"position": "41",
"us": false,
"hrate": 0,
"rrate": 0
}
]
}
}
"позиция" является поле из строки, которая подает элемент select
. После сохранения строки на сетке ничего не отображается. Зачем? Должен ли я сохранить ключ от выбора в качестве Int
или как String
. Это имеет значение? Я пробовал оба способа, чтобы я никогда не мог отображать что-либо в сетке для элемента select. Он должен показать: "CAP Pos 42"
Я сделал именно то, что вы показываете на примере третьего. Я получаю результаты из базы данных, и список заполняется. Если я выйду из форматирования; «select» после сохранения ничего не отображается в сетке, если я удалю это ssetting, он показывает ключ, а не значение ... Я сохраняю ключ в базе данных, я надеюсь, что так ... пожалуйста, совет –
I должен сказать, что ваш пример показывает только одно и то же значение для «ключа» и «текста» для выбора. Я изменил способ создания выборки, поместив " Есть ли что-то другое, чтобы быть другим? –
@ManuelValle: Вы должны быть очень осторожны, если хотите использовать select с другими значениями в качестве текста опции. Будет важно, как вы заполняете сетку и **, когда ** вы устанавливаете 'значение'. Например, вы можете расширить данные, возвращаемые с сервера во время заполнения сетки, с ответом 'GetPositionsList'. Внутри 'beforeProcessing' вы можете изменить' editoptions.value'. Если вы используете редактирование, вам нужно будет сделать дополнительную дополнительную настройку для отправки * значения *, а не текста выбранной опции. Поэтому все нужно подробно изучить, и полный код, который вы используете, должен видеть. – Oleg