我有多个单选按钮,我正在使用GroupName来选择 2个选项中至少有1个。我似乎无法得到GroupName所以我可以 验证以确保选择了其中1个,并且单击了提交按钮。
<myRepeater>
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ErrorMessage="* Select an option"
ForeColor="#ff0000"
OnServerValidate="option1_Validation"
Display="Dynamic" />
<asp:RadioButton
ID="rdOption1"
Text="Option_1"
GroupName="gnOption1"
runat="server" />
<asp:RadioButton
ID="rdOption2"
Text="Option_2"
GroupName="gnOption1"
runat="server" />
</myRepeater>
代码:
protected void option1_Validation(object source, ServerValidateEventArgs args)
{
bool itemSelected = false;
foreach (RepeaterItem ri in myRepeater.Items)
{
RadioButton rb= (RadioButton)ri.FindControl("gnOption1");
{
if (rb.GroupName == "gnOption1" && rb.Checked == true)
{
itemSelected = true;
}
args.IsValid = itemSelected;
}
}
}
答案 0 :(得分:0)
您必须将发件人对象强制转换为自定义验证器:
CustomValidator myCustomValidator = (CustomValidator)sender;
然后找到CustomValidator的父级,在本例中为Repeater Item:
RepeaterItem ri = (RepeaterItem)myCustomValidator.Parent;
最后获得控制权:
RadioButton rb= (RadioButton)ri.FindControl("gnOption1");
您必须根据自己的需要进行调整。
答案 1 :(得分:0)
protected void game1_Validation(object sender, ServerValidateEventArgs args)
{
CustomValidator CustomValidator1 = (CustomValidator)sender;
bool itemSelected = false;
RepeaterItem ri = (RepeaterItem)CustomValidator1.Parent;
{
if (ri is RadioButton)
{
RadioButton rb = (RadioButton)ri.FindControl("gnOption11");
if (rb.GroupName == "gnOption1" && rb.Checked == true)
{
itemSelected = true;
}
}
}
args.IsValid = itemSelected;
}