动态创建文本框并获取它的价值

时间:2013-08-14 12:49:41

标签: asp.net

TextBox t1 = new TextBox();
t1.Text="123";
qwe2.controls.AddControl(t1);

我动态地将文本框添加到qwe2 qwe2只是一个小组

<asp:panel ID="qwe2" runat="server"></asp:panel>

然后在button_submit上有一个函数

public void button_click(object sender, EventArgs e)
{ var x = t1.Text; }

但是t1.text为什么是空的?以及如何获得价值;

4 个答案:

答案 0 :(得分:2)

当您动态添加控件时,您必须在所有回发中添加文本框

    public void page_load(object sender, EventArgs e)
    {       

        if(!ispostback)
        {
        }

        TextBox t1 = new TextBox();t1.Text="123";
        t1.ID ="txtDynamic";
        qwe2.controls.AddControl(t1);
    }

    public void button_click(object sender, EventArgs e)
    {     
         TextBox t1 = (TextBox)qwe2.FindControl("txtDynamic");
         var x = t1.Text    
    }

答案 1 :(得分:1)

请记住,当您创建动态控件时,在页面后面,这些控件将从页面中删除。为了访问这些动态控件,请使用客户端脚本,如javascript,jquery。

在您的示例中,单击客户端上的按钮。

//server side
TextBox t1 = new TextBox();
t1.Text="123";
t1.ID ="txtDynamic";
qwe2.controls.AddControl(t1);

//client side
<asp:button id="button" runat="server" text="click" onClientClick="return callme();" />

<script>
function callme()
{
   var textvalue = document.getElementByID('#txtDynamic').value;
}
</script>

感谢。

答案 2 :(得分:0)

试试这个:

创建按钮并为其提供ID

TextBox t1 = new TextBox();t1.Text="123";
t1.ID ="txtDynamic";
qwe2.controls.AddControl(t1);

点击按钮

 public void button_click(object sender, EventArgs e)
    { 
     TextBox t1 = (TextBox)qwe2.FindControl("txtDynamic");
      var x = t1.Text
     }

答案 3 :(得分:0)

我认为您可能需要在文本框中添加ID,然后执行textBoxId.Text;