Как получить доступ к объекту контекста в виде массива в обратном вызове PageMethods - PullRequest
0 голосов
/ 02 января 2009

Я не могу получить доступ к объекту контекста, используя заданный контекст цикла: var context = [id1, id2, id3];

Эта функция обратного вызова работает:

function OnChangeSucceeded(result, context, methodName) {
    document.getElementById(context[0]).disabled = result;
    document.getElementById(context[1]).disabled = result;
    document.getElementById(context[2]).disabled = result;
}

Эта функция обратного вызова завершается ошибкой:

function OnChangeSucceeded(result, context, methodName) {
        for(var indx = 0; indx < context.length; indx++) {
           document.getElementById(context[indx]).disabled = result;
        }

    }

Ответы [ 3 ]

0 голосов
/ 02 января 2009

Это из-за вашей опечатки?

for(var index = 0; indx < context.length; indx++) {

должно быть

for(var indx = 0; indx < context.length; indx++) {
0 голосов
/ 02 января 2009

Thats для указателя на firebug tvanfosson.

Я переделал функцию, и теперь она работает как:

function OnChangeSucceeded(result, context, methodName) {
    for (controlId in context) {
        document.getElementById(context[controlId]).disabled = result;
    }
}

Я не уверен, что это так, потому что контекст был изначально создан как:

context = [id1, id2, id3];

, который я теперь заменил на:

context = new Array(id1, id2, id3);
0 голосов
/ 02 января 2009

Было бы удобно увидеть вызывающий код, чтобы мы могли видеть, как устанавливается ваш контекст. Я собираюсь догадаться, что вы настроили его как ассоциацию, а не как массив, чтобы при использовании его в обратном вызове не было свойства длины (или 0).

Когда вы установите его, он должен выглядеть так:

var context = new Array();
context[0] = 'elem0';
context[1] = 'elem1';
context[2] = 'elem2';

не

var context = {0: 'elem0', 1: 'elem1', 2: 'elem2'};

Если это не проблема, попробуйте проверить это в FireFox / FireBug, установив точку останова в функции onChangeSucceeded и исследуя фактический объект контекста, чтобы увидеть, какие свойства он имеет.

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