C # Javascript включить / отключить флажки - PullRequest
2 голосов
/ 17 июня 2011

У меня есть несколько флажков, динамически создаваемых в коде C #. Скажем, две колонки. Это отлично работает.

Я хочу, чтобы флажки в левом столбце включали / отключали флажки справа при проверке. Я делаю это, прикрепляя атрибуты к флажкам в codebehind, которые запускают javascript для включения / выключения. Это прекрасно работает.

Вот код JavaScript:

function SetPrimaryStatus(target, senders) {
    var dis = "disable";
    var arr = senders.split(",");
    for (var i = 0; i < arr.length; i++) {
        if (document.getElementById(arr[i]).checked == true) {
            dis = "";
            break;
        }
    }
    document.getElementById(target).disabled = dis;
    if (dis == "disable") document.getElementById(target).checked = false;
}

Я думал, что я свободен дома ... Мне просто нужно отключить флажки в правой колонке при создании в codebehind (CheckBox.Enabled = false;). Хорошо.

По какой-то причине сейчас, когда я проверяю левые флажки, правые ничего не делают. Я установил оповещения в javascript, и они всегда появляются ... и кажется, что все настроено так, как должно. Когда я удаляю CheckBox.Enabled = false; в коде позади, он снова работает.

Фактически, я могу запустить некоторые из левых флажков с помощью флажка, а соответствующий правый флажок я оставляю включенным. Когда я запускаю набор (-ы), который запускается включенным, работает отлично, но набор (-ы), которые запускаются с отключенным правым флажком, не работают.

Есть ли что-то кроме Enabled, которое я должен установить в codebehind для запуска флажков в отключенном состоянии, которые затем может изменить javascript? Это правда / ложь по сравнению с «отключить»? Я пробовал оба.

Ответы [ 2 ]

0 голосов
/ 18 июня 2011

Я нашел ответ здесь: http://forums.asp.net/t/982967.aspx/1.

Мне пришлось добавить document.getElementById(target).parentElement.disabled = dis; к моей функции JavaScript. Теперь все работает как положено. Спасибо за все предложения.

0 голосов
/ 17 июня 2011

попробуйте добавить атрибут "disabled".то есть

CheckBox.Attributes["disabled"] = "disable";

в любом случае, я думаю, что лучше использовать метод .removeAttribute("diabled") вместо установки его значения в пустую строку.

...