Доступ к значению динамически созданных элементов управления c# asp.net

Я пытаюсь получить доступ к значению выбранного radioButton. У меня есть список кнопку радио, разделенных суб заголовки (следовательно, почему я не использовал radioList)

Я не знаю, как получить доступ к выбранному значению, поскольку я не уверен, какое имя оно дано с его динамикой.

следующий код находится в цикле for и выводит параметры радио. Все опции предназначены для одного требуемого выбора пользователя.

//add list to radio button list
RadioButton button1 = new RadioButton { 
GroupName = "myGroup", 
Text = singleType.appTypeName, 
ID = singleType.appTypeID.ToString() 
};
radioArea.Controls.Add(button1);
myLabel = new Label();
myLabel.Text = "<br />";
radioArea.Controls.Add(myLabel);

вот как я пытаюсь получить доступ это:

RadioButton myButton = (RadioButton) radioArea.FindControl("myGroup");

Я понимаю, что это должно быть очень просто, но я все еще в очень настроении PHP и ценю любую помощь.

спасибо

2 ответов


Привет мне кажется, что вы немного смущены тем, что делают различные свойства управления переключателем и как правильно сгенерировать переключатель.

свойство ID является ключевым здесь.

вы должны установить свойство ID в уникальную строку, которая затем используется для доступа к элементу управления при обратной передаче.

GroupName - это просто псевдоним для стандартного свойства name переключателя и используется, когда пользователь нажимает на переключатель только в группе можно выбрать один переключатель.

например:

//add list to radio button list
RadioButton radioButton = new RadioButton();
radioButton.GroupName = "radioGroup";
radioButton.Text = singleType.appTypeID.ToString();
radioButton.ID = singleType.appTypeName;

radioArea.Controls.Add(radioButton);

Label label = new Label();
label.Text = "<br />";
radioArea.Controls.Add(label);

в приведенном выше примере я назначил singleType.appTypeName как идентификатор, предполагая, что это уникально.

затем, чтобы повторить значение на обратной передаче, сделайте это, assumnig, что singleType.appTypeName = "mySuperApp":

RadioButton radioButton = (RadioButton) radioArea.FindControl("mySuperApp");

теперь вы можете получить доступ к переменной radioButton, чтобы проверить, какое имя группы у нее есть, получить его значение и проверить, что оно проверено.

необходимо в цикле над переключателями, чтобы узнать, какой из них проверен. Простой способ сделать это-зацикливание на дочерних элементах управления radioArea и проверка управления eack, чтобы увидеть, является ли это переключателем и если он проверен. Другой вариант-дать каждому ID префикс, т. е. ID= "RAD_" +singleType.appTypeName и цикл над объектом запроса и соответствуют каждому из них с правильным суффиксом.


на FindControl метод, который вы используете, ожидает, что вы передадите его ID Это было назначено элементу управления при его создании.

Итак, для вашего примера RadioButton.ID должно быть равно singleType.appTypeID.ToString()

надеюсь, что это помогает.