Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
ku1gun
2 / 2 / 0
Регистрация: 20.04.2012
Сообщений: 18
1

Как получить SelectedValue динамически добавленного RadioButtonList (JavaScript)

20.04.2012, 17:32. Просмотров 1401. Ответов 5
Метки нет (Все метки)

Доброго времени суток. Подскажите пожалуйста, кто сталкивался с таким вопросом.
Есть динамически добавляемые в таблицу RadioButtonList и TextBox, ID которых генерируется по счётчику количества строк таблицы.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rbl_Mark = new RadioButtonList();
rbl_Mark.SelectedIndex = 0;
rbl_Mark.ID = "rbl_Mark_" + rowCounterDisplay;
rbl_Mark.Items.Add(new ListItem("Да"));
rbl_Mark.Items.Add(new ListItem("Нет"));
 
tb_Mark = new TextBox();
tb_Mark.Width = 25;
tb_Mark.MaxLength = 4;
tb_Mark.Enabled = false;
tb_Mark.ID = "tb_Mark_" + rowCounterDisplay;
 
tab_Table.Rows[rowNumber].Cells[cellNumber].Controls.Add(rbl_Mark);
tab_Table.Rows[rowNumber].Cells[cellNumber].Controls.Add(tb_Mark);
Когда пользователь выбирает "Нет", необходимо на стороне клиента выставить "tb_Mark.Enabled = true;", причём именно в той строке таблицы, в которой и было выбрано значение "Нет" в RadioButtonList.

Перелопатил множество, а так и не нашёл нормального ответа.

Заранее Вам благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 17:32
Ответы с готовыми решениями:

Как заставить при изменении выбранной кнопки из RadioButtonList вызываться функции javascript?
Я написала функцию javascript. Но не знаю, как сделать чтобы при изменении...

Как извлечь состояние RadioButtonList, помещенного в GridView?
пробовал protected void Button1_Click(object sender, EventArgs e) { ...

Как получить динамически подгружаемые данные со страниц ВКонтакте
Здравствуйте. Появилась необходимость получить данные со страницы вконтакте....

Как полностью получить страницу вк, если она динамически подгружается
Здраствуйте. Собственно пытаюсь написать программку для работы с вк. Основная...

Как рефлексией динамически получить статический метод для класса Convert
Как динамически получить метод для нестатического класса, я уже нашел. Делается...

5
sau
2021 / 1634 / 271
Регистрация: 22.07.2011
Сообщений: 6,205
Завершенные тесты: 1
20.04.2012, 20:13 2
На стороне сервера у контрола ListItem через атрибуты прописать js обработчик клиентского события, в который передавать id изменяемого элемента.
http://msdn.microsoft.com/en-us/libr...ttributes.aspx
1
HF
168 / 162 / 53
Регистрация: 09.09.2011
Сообщений: 599
Завершенные тесты: 19
20.04.2012, 23:46 3
Цитата Сообщение от ku1gun Посмотреть сообщение
Доброго времени суток. Подскажите пожалуйста, кто сталкивался с таким вопросом.
Есть динамически добавляемые в таблицу RadioButtonList и TextBox, ID которых генерируется по счётчику количества строк таблицы.
А как именно вы получаете значение?
0
ku1gun
2 / 2 / 0
Регистрация: 20.04.2012
Сообщений: 18
23.04.2012, 12:35  [ТС] 4
Цитата Сообщение от sau Посмотреть сообщение
На стороне сервера у контрола ListItem через атрибуты прописать js обработчик клиентского события, в который передавать id изменяемого элемента.
http://msdn.microsoft.com/en-us/libr...ttributes.aspx
Спасибо, помогло реализовать одну часть вопроса. Повесил обработку javascript'ом на каждый radiobutton из RadioButtonList'а, теперь нормально отображает выбранное значение.

Осталось теперь "найти" на странице TextBox с таким же значением индекса в "textBox.ID". Не получается "вытащить" TextBox по ID'шнику.

Вот моя javascript-функция:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function GetRadioButtonValue(id, value) 
    {
        var radio = (value + " + " + id);
        var aa = (value + " + " + id).replace(/^undefined [+] /, "");//rbl_Mark_0.0Выполнен
        var radio_value = (value + " + " + id).replace(/^undefined [+] rbl_Mark_\d{1,}.\d{1,}/, ""); //Значание radioButton (выполнен/Не выполнен...)
        var rbl_control = aa.replace(radio_value, "");//"rbl_Mark_Х.Х"
        var index = rbl_control.replace("rbl_Mark_", "");//"Х.Х"
        var find_control = "tb_Mark_" + index;//"tb_Mark_Х.Х"
 
        if (radio_value == "Частично") 
        {
            alert(radio_value);
            alert(find_control);
            document.getElementById(find_control).disable = false;
        }
        else 
        {
            alert(radio_value);
        }
    }
0
sau
2021 / 1634 / 271
Регистрация: 22.07.2011
Сообщений: 6,205
Завершенные тесты: 1
23.04.2012, 14:46 5
Ну можно с помощью DOM-а найти следующий/родительский/дочерний элемент за найденным элементом радио.
Проще это сделать через JQuery.
http://api.jquery.com/category/traversing/

Другой вариант, это пошаманить с ClientIDMode у tab_Table, там есть возможность задавать с каким суффиксом и каким образом будут формироваться ид. на клиенте.
http://msdn.microsoft.com/ru-ru/libr...entidmode.aspx

Ну и наконец, можно тупо передать ид. текст бокса и радиобутона в твою функцию.
...Attributes["onclick"] = string.Format("OnRadioButtonClick(this,'{0}')",tb_Mark.ClientID);
1
ku1gun
2 / 2 / 0
Регистрация: 20.04.2012
Сообщений: 18
23.04.2012, 17:35  [ТС] 6
Огромное спасибо за помощь!!!
Решил

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ListItem li1 = new ListItem("Да");
ListItem  li2 = new ListItem ("Нет");
rbl_Mark = new RadioButtonList();
rbl_Mark.SelectedIndex = 0;
rbl_Mark.ID = "rbl_Mark_" + rowCounterDisplay + cellcounter;
rbl_Mark.Items.Add(li1);
rbl_Mark.Items.Add(li2);
li1.Attributes["OnClick"] = "javascript:GetRadioButtonValue('" + rbl_Mark.ID.ToString() + li.Text + "');";
li2.Attributes["OnClick"] = "javascript:GetRadioButtonValue('" + rbl_Mark.ID.ToString() + li.Text + "');";
 
tb_Mark = new TextBox();
tb_Mark.Width = 25;
tb_Mark.MaxLength = 4;
tb_Mark.Enabled = false;
tb_Mark.ID = "tb_Mark_" + rowCounterDisplay+cellcounter;
 
tab_Table.Rows[rowNumber].Cells[cellNumber].Controls.Add(rbl_Mark);
tab_Table.Rows[rowNumber].Cells[cellNumber].Controls.Add(tb_Mark);
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function GetRadioButtonValue(id, value) {
    var radio = (value + " + " + id);
    var aa = (value + " + " + id).replace(/^undefined [+] /, ""); //"rbl_Mark_0.0Выполнен"
    var radio_value = (value + " + " + id).replace(/^undefined [+] rbl_Mark_\d{1,}.\d{1,}/, ""); //Значение radioButton (выполнен/Не выполнен...)
    var rbl_control = aa.replace(radio_value, ""); //"rbl_Mark_0.0"
    var r_index = rbl_control.replace("rbl_Mark_", ""); //"X.X"
    var index = r_index.replace(".", "\\."); //"X.X"
    var find_control = "MainContent_EvaluationCard1_tb_Mark_" + index; //"tb_Mark_X.X"
 
    if (radio_value == "Частично") 
    {
        $("input[id$=" + find_control + "]").attr('disabled', false);
    }
    else 
    {
        $("input[id$=" + find_control + "]").attr('disabled', true);
    }
}
0
23.04.2012, 17:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2012, 17:35

Как получить значение с javascript
есть такой маленкий скрипт на стороне пользувателя function printQ() ...

Web api Управлять очередью запросов динамически (длиной) и как получить url поступившего в очередь запроса
Я так понимаю, что все запросы приходят в HTTP.Sys откуда запрос в виде...

RadioButtonList
Скажите пож-ста, как сделать так, что бы можно было в списке выбрать 2 эл-та (...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru