Отключить asp.net радио кнопку с JavaScript - PullRequest
2 голосов
/ 28 августа 2008

Я пытаюсь отключить кучу элементов управления с помощью JavaScript (чтобы они возвращали значения). Все элементы управления работают нормально, кроме моих переключателей, поскольку они теряют свою ценность. В приведенном ниже коде, который вызывается через рекурсивную функцию для отключения всех дочерних элементов управления, Second-else (иначе, если (элемент управления RadioButton)) никогда не срабатывает, а элемент управления RadioButton определяется как Checkbox.

    private static void DisableControl(WebControl control)
    {

        if (control is CheckBox)
        {
            ((CheckBox)control).InputAttributes.Add("disabled", "disabled");

        }
        else if (control is RadioButton)
        { 

        }
        else if (control is ImageButton)
        {
            ((ImageButton)control).Enabled = false;
        }
        else
        {
            control.Attributes.Add("readonly", "readonly");
        }
    }

Два вопроса:
1. Как определить, какой элемент управления является радиокнопкой?
2. Как отключить его, чтобы он отправлял обратно свое значение?

Ответы [ 2 ]

3 голосов
/ 28 августа 2008

Я нашел 2 способа заставить это работать, код ниже правильно различает элементы управления RadioButton и Checkbox.

    private static void DisableControl(WebControl control)
    {
        Type controlType = control.GetType();

        if (controlType == typeof(CheckBox))
        {
            ((CheckBox)control).InputAttributes.Add("disabled", "disabled");

        }
        else if (controlType == typeof(RadioButton))
        {
            ((RadioButton)control).InputAttributes.Add("disabled", "true");
        }
        else if (controlType == typeof(ImageButton))
        {
            ((ImageButton)control).Enabled = false;
        }
        else
        {
            control.Attributes.Add("readonly", "readonly");
        }
    }

И решение, которое я использовал, это установить SubmitDisabledControls = "True" в элементе формы, который не идеален, поскольку позволяет пользователю манипулировать значениями, но в моем сценарии это нормально. Второе решение состоит в том, чтобы имитировать поведение Отключено, и подробности можно найти здесь: http://aspnet.4guysfromrolla.com/articles/012506-1.aspx'> http://aspnet.4guysfromrolla.com/articles/012506-1.aspx.

0 голосов
/ 28 августа 2008

Мне кажется, что вы должны проверить атрибут «type» флажка, чтобы определить, является ли он переключателем.

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