<asp:CheckBox ID="CheckBox1" runat="server" name="Admin_Power" Text=" 投票1" />
<asp:CheckBox ID="CheckBox2" runat="server" name="Admin_Power" Text=" 投票2" />
<asp:CheckBox ID="CheckBox3" runat="server" name="Admin_Power" Text=" 投票3" />
<asp:CheckBox ID="CheckBox4" runat="server" name="Admin_Power" Text=" 投票4" />
<asp:CheckBox ID="CheckBox5" runat="server" name="Admin_Power" Text=" 投票5" />
<asp:CheckBox ID="CheckBox6" runat="server" name="Admin_Power" Text=" 投票6" />
页面里有N组这种CheckBox 
请问在后台里如何遍历name为Admin_Power的CheckBox 

解决方案 »

  1.   

    本帖最后由 net_lover 于 2011-08-09 10:26:04 编辑
      

  2.   

    楼上的大哥 我有很多不明白的地方
    FindBox在哪调用?如何调用?cc是什么?
      

  3.   

    完整的方法
    <%@ Page Language="C#" EnableEventValidation="false" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
     
      protected void Button1_Click(object sender, EventArgs e)
      {
        FindBox(this.Controls);
      }  private void FindBox(ControlCollection cc)
      {
        foreach (Control c in cc)
        {
          if (c.HasControls())
          {
            FindBox(c.Controls);
          }      if (c is CheckBox)
          {
            CheckBox x = c as CheckBox;
            //判断名称
            if (x.Attributes["name"] != null && x.Attributes["name"].Equals("Admin_Power"))
            {
              Response.Write("<li>" + x.Attributes["name"]);
            }
          }
        }  }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    </head>
    <body>
      <form runat="server" id="form1">
      <asp:CheckBox ID="CheckBox7" runat="server" name="xxxxx" Text=" xxxxx" />
      <asp:CheckBox ID="CheckBox1" runat="server" name="Admin_Power" Text=" 投票1" />
      <asp:CheckBox ID="CheckBox2" runat="server" name="Admin_Power" Text=" 投票2" />
      <asp:CheckBox ID="CheckBox3" runat="server" name="Admin_Power" Text=" 投票3" />
      <asp:CheckBox ID="CheckBox4" runat="server" name="Admin_Power" Text=" 投票4" />
      <asp:CheckBox ID="CheckBox5" runat="server" name="Admin_Power" Text=" 投票5" />
      <asp:CheckBox ID="CheckBox6" runat="server" name="Admin_Power" Text=" 投票6" />
      <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="得到" />
      </form>
    </body>
    </html>
      

  4.   

    这个方法可不可以返回string类型的值啊?
      

  5.   

    知道出处了。哎,一次把需求说清楚多好。private string FindBox(ControlCollection cc)
            {
                
                string str = "";
                foreach (Control c in cc)
                {
                    if (c is CheckBox)
                    {
                        CheckBox x = c as CheckBox;
                        //判断名称
                        if (x.Attributes["name"] != null && x.Attributes["name"].Equals("Admin_Power") && x.Checked == true)
                        {
                            str += x.Text + ",";
                        }
                    }                if (c.HasControls())
                    {
                        str = FindBox(c.Controls);
                    }                
                }
                return str;
            }        protected void Button1_Click(object sender, EventArgs e)
            {
                string result = FindBox(Page.Controls);
                result = result.Substring(0, result.Length - 1);            
            }