无法为动态生成的文本框获取文本属性c#

时间:2015-04-09 16:06:35

标签: c# asp.net typeof dynamic-controls servercontrols

我创建了一个在服务器上运行的DIV,然后动态创建TextBox控件并将其添加到DIV。稍后当我尝试阅读TextBox中每个DIV的Text属性时,我无法获得控件...

我如何做到这一点?

在服务器上运行的DIV ......

<div id="divBonusPercents" runat="server"></div>

根据某些条件动态添加文本框...

 foreach (ListItem item in lbTeamsEOM.Items)
                        if (item.Selected)
                        {
                            // add controls for team bonus %
                            TextBox tbPercent = new TextBox();
                            tbPercent.Text = "15%";
                            tbPercent.ID = "tbPercent" + item.Value;
                            divBonusPercents.Controls.Add(tbPercent);
                        }     

获取DIV中每个TextBox的值

List<string> lBonusPercent = new List<string>();
            foreach (Control c in divBonusPercents.Controls)
                if (c.GetType() == typeof(TextBox))
                    lBonusPercent.Add(((TextBox)c).Text);   

1 个答案:

答案 0 :(得分:0)

以前的海报是正确的,因为您无法访问TextBoxes的Text属性,除非它们在页面生命周期中尽早创建。

但是,实际发布的表单元素仍应存在于HTTP请求中。 Request.Form[**TextBoxObjectHere**.UniqueID]应该返回表单帖子中文本框中的任何文字。