[英]Accessing value of dynamically created controls 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的心态,并感谢任何帮助。
谢谢
嗨,这对我来说听起来像你对单选按钮控件的各种属性以及如何正确生成单选按钮有点困惑。
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 = "<br />";
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()
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.