访问动态创建的控件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 = "
"; radioArea.Controls.Add(myLabel);

这是我试图访问它的方式:

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

我意识到这应该是非常简单的,但我仍然处于非常PHP的心态,并感谢任何帮助。

谢谢

嗨,这听起来像是你对单选按钮控件的各种属性以及如何正确生成单选按钮感到困惑。

ID属性是关键所在。

您应该将ID属性设置为唯一的字符串,然后使用该字符串在回发时访问控件。

GroupName只是单选按钮的标准名称属性的别名,因此当用户单击组中的单选按钮时,只能选择一个单选按钮。

例如:

 //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 = "
"; radioArea.Controls.Add(label);

在上面的例子中,我已经将singleType.appTypeName指定为ID,假设这是唯一的。

然后在回发上检索值,执行此操作,确定singleType.appTypeName =“mySuperApp”:

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

现在,您可以访问radioButton变量来检查它具有哪个GroupName,获取它的值并检查它是否已被选中。

您需要循环显示单选按钮以找出选中的单选按钮。 执行此操作的一种简单方法是循环使用radioArea的子控件并检查eack控件以查看它是否为单选按钮以及是否已选中。 另一个选项是为每个ID提供一个前缀,即ID =“RAD _”+ singleType.appTypeName,并在Request对象上循环,并将每个ID与正确的后缀匹配。

您正在使用的FindControl方法希望您将创建它时分配给控件的ID传递给它。

所以对于你的例子, RadioButton.ID应该等于singleType.appTypeID.ToString()

希望这可以帮助。