• Aspx后台遍历控件


    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)
    

      

  • 相关阅读:
    SQL 基础命令和函数
    [Delphi] FMXUI
    Win10 磁盘占用 100% 有效解决办法
    [转] Windows下编译OpenSSL
    [Java] Spring + SpringMVC + Maven + JUnit 搭建
    [Java] ApplicationContext 辅助类
    [Java] Maven 镜像仓库
    [Java] Spring MVC 知识点
    [Java] Maven 建立 Spring MVC 工程
    [Java] Maven 安装和配置
  • 原文地址:https://www.cnblogs.com/lgx5/p/11673383.html
Copyright © 2020-2023  润新知