Заполните выбор в панели инструментов фильтра jqgrid - PullRequest
0 голосов
/ 21 февраля 2012

Я попытался заполнить выпадающий список значениями из моей базы данных. В моем файле .js есть следующий код:

function getDropdowndata() {
var sHTML;
var filter;
var url = "dropdown.json";
jQuery.getJSON(url, function (dddata) {
    if (dddata.rows.length > 0) {
        sHTML = "";
        for (x = 0; x < dddata.rows.length; x++) {
            sHTML += (dddata.rows[x].Type + ":" + dddata.rows[x].Type + ";");
        }
        filter = sHTML.substring(0, sHTML.length - 1);
    }
});
return filter;
}

И в моем списке Jqgrid у меня есть следующее:

editoptions: { value: ":All;" + getDropdowndata() }

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

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

Есть предложения?

1 Ответ

0 голосов
/ 23 февраля 2012

Вместо того чтобы получать данные с помощью пользовательской функции с использованием JSON, вы можете попробовать использовать встроенную функциональность для полей динамического выбора (см. Документацию: select edittype ). Все, что вам нужно сделать, это указать URL-адрес, по которому генерируется код для элемента select.

colModel:[
    {name:'colName',
     editable:true,
     edittype:'select',
     formatter:'select',
     editoptions:{dataUrl:'/path/to/generated/html/select'}
]

Тогда вам просто нужно убедиться, что /path/to/generated/html/select возвращает весь правильный HTML-код для выбранного элемента.

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