我正在尝试使用组名查找checked radio的值。我有返回该值的方法,但是我应该在该方法中传递什么沿着组名
方法在这里,
private string getRadioValue(ControlCollection clts, string groupName)
{
string ret = "";
foreach (Control ctl in clts)
{
if (ctl.Controls.Count != 0)
{
if (ret == "")
ret = getRadioValue(ctl.Controls, groupName);
}
if (ctl.ToString() == "System.Web.UI.WebControls.RadioButton")
{
RadioButton rb = (RadioButton)ctl;
if (rb.GroupName == groupName && rb.Checked == true)
ret = rb.Attributes["Value"];
}
}
return ret;
}
我用它就像
Oc.aProjectSubmited = getRadioValue(RadioButton,"Aps");
其中,Aps是单选按钮组,但在单选按钮上出现错误“参数无效”。
我期待你的建议,先谢了
5条答案
按热度按时间afdcj2ne1#
这是因为您传递的是
RadioButton
。您的方法接受ControlCollection
,而不是Control
。为什么不传递这个.控件来传递页面的整个ControlCollection?或者您可能用来保存要检查的RadioButton的任何其他ControlCollection?
下面是一个例子:
jvlzgdj92#
下面是一个使用Linq来避免循环的简短版本...
gev0vcfq3#
使用LINQ:
xvw2m8pv4#
ToString()不会给予您想要的内容:你需要的是
bejyjqdl5#
甚至更短的版本(在我的例子中,我需要单选按钮的文本)按钮。
您也可以将其作为HtmlGenericControl的扩展方法,例如div。