网页生命周期-动态添加控件

有程序动态创建控件

1,获取文本框内容;规避输入问题try{}catch{}

2,在panel中按数量添加文本框pnl.controls.add(ctl)

3,添加时同时在文本框中设置值

4,测算总共控件数量:controls.count

5,判断某控件是不是文本框:control is textbox

 点击没有事件的控件,刷新页面的分析

1.按“创建”

  提交页面-pageload- BtnClick

2.按“计数”

  提交页面-pageload-BtnClick

ASP代码

<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="TxtInfo" runat="server"></asp:TextBox>
    <asp:Button ID="BtnClick" Width="80" Text="创建控件组" runat="server" OnClick="BtnClick_Click" />
    
        <br />
        <asp:Panel ID="Panel1" runat="server" Width="529px">
        </asp:Panel>
    
    </div>
    </form>
</body>

C#

 protected void Page_Load(object sender, EventArgs e)
    {
        int i = 0;
        try
        {
            //用户输入的转换类型int 赋值给i
            i = Int32.Parse(TxtInfo.Text);
        }
        catch (Exception)
        {


        }

        TextBox txtBox;   //定义一个控件
        if (i > 0)
        {
            for (int y = 0; y < i; y++)
            {
                //实例化控件
                txtBox = new TextBox();
                txtBox.Text = "";
                //将控件添加到pannel容器中
                Panel1.Controls.Add(txtBox);
            }
        }
    }
    //为什么要添加在pageload页面中,是因为没点击click事件后页面会刷新,我们利用页面刷新来加载
    protected void BtnClick_Click(object sender, EventArgs e)
    {
       
    }
}

 动态累加求和

  protected void butcount_Click(object sender, EventArgs e)
    {
        //创建变量接收求和
        double sum = 0;
        //创建textbox实例
        TextBox text;
        foreach (Control item in Panel1.Controls)
        {
            if (item is TextBox)
            {
                text = (TextBox)item;
                try
                {
                    sum += double.Parse(text.Text);
                }
                catch 
                {

                    
                }
            }
        }
        txtcount.Text = sum.ToString();
    }
}

 

 

 

 

 

 

 

 

posted @ 2018-06-07 13:43  WhiteSpace  阅读(204)  评论(0编辑  收藏  举报