Ошибка в заполнении выпадающего списка при нажатии на строку в jqGrid - PullRequest
0 голосов
/ 24 февраля 2011

Я хочу заполнить раскрывающийся список ячеек jqGrid при нажатии на строку.Я щелкаю строку, но раскрывающийся список не заполняется.

Код, который я написал для заполнения раскрывающегося списка при редактировании или щелчка строки:заполнить столбец totalhours при щелчке строки, который будет заполнен яблоками и апельсинами, но каким-то образом я получаю пустые выпадающие списки.При щелчке строки отображается раскрывающийся список, но он не заполняется.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

в соответствии с вашим предложением я сделал это ..

 colModel: [
            { name: 'Emp_code', width: 50, sortable: false, align: "center" },
            { name: 'Emp_name', width: 200, sortable: false },
        //{ name: 'totalhours', width: 100, sortable: false, align: 'center', editable: true, edittype: "select", editoptions: { value: "1:1;2:2;3:3;4:4;5:5;6:6;7:7;8:8;9:9"} }

           {name: 'totalhours', width: 100, sortable: false, align: 'center', editable: true, edittype: "select",
           editoptions: { dataUrl: '../Services/ServiceTest.asmx/GetListHours',
               buildSelect: function(data) {
                   alert('hello i am here ');
                   var response = jQuery.parseJSON(data.responseText);
                   var s = '<select>';
                   if (response && response.length) {
                       for (var i = 0, l = response.length; i < l; i++) {
                           var ri = response[i];
                           s += '<option value="' + ri + '">' + ri + '</option>';
                       }
                   }
                   return s + "</select>";
               }

           }
       }
        ],

и соответствующий веб-запрос i, к которому я обращаюсь:выпадающий список показывает пустое ... есть ли событие, которое я должен пройти через?это должно быть запущено, когда я нажимаю на строку?заполнить выпадающий список?выше код, который я пытался реализовать в соответствии с вашим предложением.но кажется, что он даже не вызывает dataurl для заполнения, потому что предупреждение функции вообще не запускается

0 голосов
/ 24 февраля 2011

Если вам нужно получить опцию выбора с сервера, вы должны использовать editoptions dataUrl и, необязательно, buildSelect. Если сервер возвращает JSON вместо HTML-фрагмента, например

<select><option value="1">Apples</option><option value="2">Oranges</option></select>

можно использовать buildSelect для преобразования ответа сервера в формат. Если srever возвращает строку в формате JSON, ваша реализация обработчика событий buildSelect может преобразовать строку JSON в объект и затем создать строку <select>...</select> из объекта.

Вы можете найти соответствующий пример кода, например здесь .

...