Странная проблема с результатом метода страницы JSON - PullRequest
1 голос
/ 29 апреля 2010

У меня есть следующий JavaScript для заполнения раскрывающегося списка. Когда я делаю шаг в populateResourceList, значение для jsonList отображается под кодом. Однако этот метод завершается ошибкой в ​​операторе for с ошибкой jsonList.Table не определено

Что я делаю не так?

    function populateResourceList(jsonList) {
        var listItems = "";
        for (var i = 0; i < jsonList.Table.length; i++) {
            listItems += "<option value='" + jsonList.Table[i].id + "'>" + jsonList.Table[i].name + "</option>";
        }
        $("#<%=resourceList.ClientID %>").html(listItems);
    };

    $(function () {
        var sessionId = 554;
        var x = PageMethods.GetFreeResources(sessionId, function (result, response, context) {
            populateResourceList(result);
        });
    });

EDIT: jsonList выглядит так:

'{"Table": [ {"id": "1", "name": "Billy Bester"}, {"id": "2", "name": "Marlene Smith"}, {"id": "3", "name": "John Mills"}, {"id": "4", "name": "Brady Kelly"}, {"id": "5", "name": "Andrew Peel"}, {"id": "6", "name": "Colin Clifford"}, {"id": "7", "name": "Kerri Steele"}, ]}' 

1 Ответ

1 голос
/ 29 апреля 2010

Вы уверены, что это литерал, а не строка?

Попробуйте и дайте мне знать. Эвал - это зло, но он скажет нам, в каком направлении мы хотим идти.

function populateResourceList(jsonList) {
    eval("var list=" + jsonList + ";");
    var listItems = "";
    for (var i = 0; i < list.Table.length; i++) {
        listItems += "<option value='" + list.Table[i].id + "'>" + list.Table[i].name + "</option>";
    }
    $("#<%=resourceList.ClientID %>").html(listItems);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...