jqGrid заполнить выбор элемента управления при редактировании строки - PullRequest
0 голосов
/ 14 сентября 2011

Я хочу добавить около 150 элементов из XML-файла в элемент управления select, находящийся внутри ячейки jqGrid. Я думал сделать это двумя способами:

1. Используя значение editoptions:

{ name: 'language', width: 100, sortable: false, editable: true, edittype: 'select', editoptions: { value: languageElem()} }

с использованием данных, полученных методом:

function languageElem() {
$.ajax({
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    url: 'jqService.asmx/GetLanguages',
    data: {},
    dataType: "json",
    success: function (data) {
        alert("success");
    }
});}

Но у меня проблемы с пересылкой данных из части AJAX.

2.Простой доступ к элементу выбора внутри ячейки jqGrid и добавление параметров вручную при каждом нажатии кнопки редактирования.

Проблема здесь в том, что я понятия не имею, как получить доступ к самому элементу управления.

Код, который я использовал здесь:

function startEdit() {
if (selRow > -1) {
    $.ajax({
        type: 'POST',
        contentType: "application/json; charset=utf-8",
        url: 'jqService.asmx/GetLanguages',
        data: {},
        dataType: "json",
        success: function (data) {
            var cell = jQuery("#MainContent_list").getCell(selRow, "language");
            cell.options.length = 0;
            for (var i=0;i<data.d.length;i++)
            {
            }
        }
    });
    jQuery("#MainContent_list").jqGrid('restoreRow', selRow);
    jQuery("#MainContent_list").jqGrid('editRow', selRow);
}

Мои вопросы:

1.В связи с первой идеей, что мне следует сделать, чтобы исправить метод, чтобы элемент управления получал необходимые значения?

2. Относительно второй идеи, как я могу получить доступ к элементу управления внутри строки?

Спасибо, Каталин

1 Ответ

0 голосов
/ 14 сентября 2011

Вместо свойства value (editoptions: { value: languageElem()}) следует использовать dataUrl и buildSelect (см. документацию ). Поскольку трудно вернуться из фрагмента HTML ASMX <select><option>...</option></select>, вы можете предоставить список, сериализованный как JSON, и преобразовать ответ сервера в фрагмент HTML, используя buildSelect. В ответе и в этом вы найдете дополнительную информацию. Если вы будете искать dataUrl и buildSelect, вы найдете больше информации и пример кода, который вы можете использовать.

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