aspx设计页面 //这个是检测按钮,检测下面的checkbox是否被选中。选中时打印其值 //https://www.cnblogs.com/pwblog/articles/3456385.html <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()); } 另一种方式: private void FindAllPageControl(ControlCollection controlCollection) { for (int i = 0; i < controlCollection.Count; i++) { if (controlCollection[i].GetType() == typeof(NumericBox)) //System.Web.UI.WebControls.TextBox { if ((controlCollection[i] as NumericBox).ID != "nbPrice") { (controlCollection[i] as NumericBox).DecimalValue = 0; } } if (controlCollection[i].HasControls()) { FindAllPageControl(controlCollection[i].Controls); } } } //调用 FindAllPageControl(this.Page.Controls)
原文:https://www.cnblogs.com/lgx5/p/11673383.html