·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> C#后台创建控件并获取值

C#后台创建控件并获取值

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

C#后台创建控件并获取值

前台代码

 <form id="form1" runat="server">    <div>        <div class="item">            Please input a number:            <asp:TextBox runat="server" CSSClass="item" ID="txtTextCount"></asp:TextBox>                       <asp:Button runat="server" ID="btnCreate" Text="Create TextBox List" ValidationGroup="CreateTextBox"                OnClick="btnCreate_Click" />&nbsp;&nbsp;            <asp:Button runat="server" ID="btnOK" Text="获取控件值" ValidationGroup="ShowListContent"                OnClick="btnOK_Click" />        </div>        <div runat="server" id="divControls" class="item">        </div>        <div runat="server" id="divMessage">        </div>    </div>        </form>

后台代码
 PRotected void Page_Load(object sender, EventArgs e)    {        if (this.IsPostBack)        {            int txtCount = int.Parse(txtTextCount.Text);            // 注意:每次PostBack时,都需要重新动态创建TextBox             CreateTextBoxList(txtCount);        }    }    ///<summary>      /// Create textbox list     ///</summary>     ///<param name="num">textbox list count</param>     private void CreateTextBoxList(int num)    {        HtmlGenericControl div;        HtmlGenericControl span;        TextBox txt;        //RegularExpressionValidator rev;        for (int i = 0; i < num; i++)        {            //创建div             div = new HtmlGenericControl();            div.TagName = "div";            div.ID = "divTextBox" + i.ToString();            div.Attributes["class"] = "item2";            //创建span             span = new HtmlGenericControl();            span.ID = "spanTextBox" + i.ToString();            span.InnerHtml = "Url Address" + (i + 1).ToString() + ":";            //创建TextBox             txt = new TextBox();            txt.ID = "txt" + i.ToString();            txt.CssClass = "input";            //创建格式验证控件,并且将其关联到对应的TextBox             //rev = new RegularExpressionValidator();            //rev.ID = "rev" + i.ToString();            //rev.ControlToValidate = txt.ID;            //rev.Display = ValidatorDisplay.Dynamic;            //rev.ValidationGroup = "ShowListContent";            //rev.ValidationExpression = @"(http(s)?://)?([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?";            //rev.ErrorMessage = "Invalid url Address!";            //添加控件到容器             div.Controls.Add(span);            div.Controls.Add(txt);            //div.Controls.Add(rev);            divControls.Controls.Add(div);        }    }    protected void btnCreate_Click(object sender, EventArgs e)    {        txtTextCount.Enabled = false;        btnCreate.Enabled = false;    }    protected void btnOK_Click(object sender, EventArgs e)    {        TextBox txt;        HtmlGenericControl span;        StringBuilder sbResult = new StringBuilder();        int txtCount = int.Parse(txtTextCount.Text);        //遍历获取动态创建的TextBox们中的Text值         for (int i = 0; i < txtCount; i++)        {            //注意:这里必须通过上层容器来获取动态创建的TextBox,才能获取取ViewState内容             txt = divControls.FindControl("txt" + i.ToString()) as TextBox;            if (txt != null && txt.Text.Trim().Length > 0)            {                sbResult.AppendFormat("Url Address{0}: {1}.<br />", i + 1, txt.Text.Trim());            }        }        //遍历获取动态创建的TextBox们中的Text值         for (int i = 0; i < txtCount; i++)        {            //注意:这里必须通过上层容器来获取动态创建的TextBox,才能获取取ViewState内容             span = divControls.FindControl("spanTextBox" + i.ToString()) as  HtmlGenericControl ;            if (span != null && span.InnerText.Trim().Length > 0)            {                sbResult.AppendFormat("Url Address{0}: {1}.<br />", i + 1, span.InnerText.Trim());            }        }        divMessage.InnerHtml = sbResult.ToString();    }