如何获取动态文本框的值

时间:2009-04-14 10:43:40

标签: asp.net

我在点击按钮时添加了一些动态文本框。我需要点击另一个按钮点击事件中的值。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:2)

首先,当您添加动态控件时,您必须在每次回发时添加它们。然后,如果你有你添加的控件的ID,你可以使用Kirschstein描述的FindControl方法找到它。

[编辑] Roshan,你必须在每次回发时动态添加控件(理想情况下在Init事件中)。为他们提供身份证。这将是您每次都可以访问它们的ID。您可以将控件添加到任何容器控件(asp:Panel,div with runat =“server”属性等) [/编辑]

答案 1 :(得分:1)

您是否尝试在ParentControl上使用FindControl(string id)方法(例如,面板)来查找它们?

protected void btnDoStuff_click(Object sender, EventArgs args)
{
   TextBox txtBox = (TextBox) pnlDynamicButtons.FindControl("txtBox1");
}

答案 2 :(得分:0)

您需要保存对这些文本框的引用,以便您可以在按钮单击处理方法中访问它们。

答案 3 :(得分:0)

在添加动态控件时,您必须在每次回发期间添加动态控件,您可以在创建它们时保存对它们的引用,例如通过向List添加txtbox id。

您可以稍后使用该List来获取动态创建的文本框并检索它们的值。

for (int i = 0; i < listTextBox.Count; i++)
{
     TextBox txt = ((TextBox)(listTextBox[i]));
}

如果你需要在回发之前获取它们的值,在创建它们时添加一个属性来将它们标记为动态创建

txtBox.Attributes.Add("isDynamic", "Y");

然后在回发之前,循环通过输入控件来获取它们。

var inputControls = document.getElementsByTagName("input");
for(var i=0 ; i<inputControls.length ; i++)
{
    if ( inputControls[i].getAttribute("isDynamic") == "Y" ) 
    {
       ...
    }
}