2
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

4 回答 4

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    
    }
于 2013-08-14T13:24:51.337 回答
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>

谢谢。

于 2013-08-14T13:19:02.893 回答
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
     }
于 2013-08-14T12:58:30.760 回答
0

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

于 2013-08-14T13:00:42.727 回答