导航

ASP.NET后台如何遍历多个CheckBox

Posted on 2010-08-04 08:08  ykhi  阅读(6611)  评论(0)    收藏  举报
aspx设计页面 
//这个是检测按钮,检测下面的checkbox是否被选中。选中时打印其值 
<asp:Button ID="Button1" runat="server" Text="检测" OnClick="Button1_Click" /> 
第一种设计:(.net 自带的) 
<asp:CheckBox ID="CheckBox1" runat="server" Text="报纸" /> 
<asp:CheckBox ID="CheckBox2" runat="server" Text="杂志" /> 
<asp:CheckBox ID="CheckBox3" runat="server" Text="小说" /> 
<asp:CheckBox ID="CheckBox4" runat="server" Text="词典" /> 
第二种设计:(html 自带的,但含有runnat="server") 
<input id="CheckBox1" type="checkbox" name="aa" runat="server" value="报纸"/> 
<input id="CheckBox2" type="checkbox" name="aa" runat="server" value="杂志"/> 
第三种设计:(html 自带的) 
<input id="CheckBox1" type="checkbox" name="aa" value="报纸"/> 
<input id="CheckBox2" type="checkbox" name="aa" value="杂志"/> 
aspx.cs文件 (将按照对应的上面的三种设计模式去写后台代码。其他的单选按钮也类似。) 
protected void Button1_Click(object sender, EventArgs e) 
    { 
       //这个是上面第一种模式 
        foreach (Control ct in form1.Controls) 
        { 
            if (ct.GetType().ToString().Equals("System.Web.UI.WebControls.CheckBox")) 
            { 
                CheckBox cb = (CheckBox)ct; 
                if (cb.Checked == true) 
                { 
                    Response.Write(cb.Text); 
                } 
            } 
        } 
       //这个是上面第二种模式。(直接用request取值,会报错的。不信试试) 
        foreach (Control ct in form1.Controls) 
        { 
            if (ct.GetType().ToString().Equals("System.Web.UI.HtmlControls.HtmlInputCheckBox")) 
            { 
                HtmlInputCheckBox cb = (HtmlInputCheckBox)ct; 
                if (cb.Checked == true) 
                { 
                    Response.Write(cb.Value); 
                } 
            } 
        } 
       //这个是上面第三种模式。(没有runnat="server",用request取值 最简单) 
       Response.Write(Request["aa"].ToString()); 
    }

转载:http://hi.baidu.com/%CD%C7%B7%CF%C9%B5%D3%E3/blog/item/0fddde021b1ab683d43f7ce8.html