网页生命周期-动态添加控件
有程序动态创建控件
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(); } }