如何在C#

时间:2018-05-22 20:24:06

标签: c# asp.net validation repeater

我有多个单选按钮,我正在使用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;
         }
     }
 }

2 个答案:

答案 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;
    }