我在点击按钮时添加了一些动态文本框。我需要点击另一个按钮点击事件中的值。我怎样才能做到这一点?
答案 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" )
{
...
}
}