zoukankan      html  css  js  c++  java
  • 点击一次铵钮产生一个新文本框,分别输入值,然后获取

    参考前一篇,http://www.cnblogs.com/insus/archive/2012/09/23/2698613.html 没有达到用户的要求,用户要求是每点击一次添加铵钮,产生一个新的文本框TextBox,在文本框输入一些值之后,点击获取文本框值的铵钮,能取得刚才在文本框的值。首先看看修改之后的效果:

    xxx.aspx:在网页中,拉一个动态添加文本框装载的容器PlaceHolder,和两个铵钮,一个是添加,另一个是获取值。

    View Code
     <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
                <br />
                <asp:Button ID="ButtonAdd" runat="server" Text="Add TextBox"  OnClick="ButtonAdd_Click" />
                <asp:Button ID="ButtonGetValue" runat="server" Text="GetTextValue" OnClick="ButtonGetValue_Click" />

    为了记录添加的次数,我们需要写一个属性,记得点击次数。

    TotalControls
     protected int TotalControls
        {
            get 
            {
                return ViewState["TotControls"] == null ? 0 : (int)(ViewState["TotControls"]); 
            }
            set 
            { 
                ViewState["TotControls"] = value; 
            }
        }

    写一个方法,动态产生文本框,方法有一个参数,就是传入将要产生的次数。

    View Code
     private void DymanicallyGenerateTextBoxControl(int totalControls)
        {
            TextBox tb = new TextBox();
            tb.ID = "TextBox" + totalControls;
            this.PlaceHolder1.Controls.Add(tb);
        }

    网页一加载时,Page_Load事件中,判断计数器为多少,循环产生文本框。

    View Code
     protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < TotalControls; i++)
            {
                DymanicallyGenerateTextBoxControl(i + 1);
            }       
        }

    Click事件:

    View Code
     protected void ButtonAdd_Click(object sender, EventArgs e)
        {
            TotalControls = TotalControls + 1;
            DymanicallyGenerateTextBoxControl(TotalControls);
        }

    最后是获取文本框值的铵钮Click事件:

    View Code
     protected void ButtonGetValue_Click(object sender, EventArgs e)
        {
            foreach (Control ctl in this.PlaceHolder1.Controls)
            {
                if (ctl is TextBox)
                    Response.Write(((TextBox)ctl).Text.Trim () + "<br/>");
            }
        }
  • 相关阅读:
    接口测试基础理论
    Python 接口测试requests.post方法中data与json参数区别
    将博客搬至CSDN
    [设计模式] 设计模式课程(二十)--命令模式(Command)
    [设计模式] 设计模式课程(十三)-- 代理模式
    [设计模式] 设计模式课程(十一)-- 享元模式(Flyweight)
    [设计模式] 设计模式课程(十二)-- 门面模式(Facade)
    [设计模式] 设计模式课程(十七)--组合模式
    [设计模式] 设计模式课程(六)-- 桥接模式
    [设计模式] 读懂UML图
  • 原文地址:https://www.cnblogs.com/insus/p/2700658.html
Copyright © 2011-2022 走看看