Tengo este problema con TextBox creado dinámicamente.Controlador de eventos no activado para controles creados dinámicamente
Cuando TextBox se crea en PageLoad, se activa su evento TextChanged.
Pero cuando eliminé dinámicamente y recreé el TextBox, el TextChanged no se activó.
Este es el código:
archivo .aspx
<body>
<form id="form1" runat="server">
<div>
<asp:Table ID="Table1" runat="server">
<asp:TableRow>
<asp:TableCell ColumnSpan="2">Fixed content</asp:TableCell>
</asp:TableRow>
</asp:Table>
</form>
</body>
.cs presentar
public partial class test : System.Web.UI.Page
{
string myText = "a";
protected void Page_Load(object sender, EventArgs e)
{
WriteRows();
}
private void WriteRows()
{
TableRow tr = new TableRow();
TableCell tc = new TableCell();
TextBox txt = new TextBox();
txt.Text = myText;
txt.TextChanged += new EventHandler(txt_TextChanged); // Assign event handler
tc.Controls.Add(txt);
tr.Controls.Add(tc);
tc = new TableCell();
tc.Text = txt.Text;
tr.Controls.Add(tc);
Table1.Controls.AddAt(1, tr);
}
private void txt_TextChanged(object sender, EventArgs e)
{
myText = ((TextBox)sender).Text;
RedrawTable(); // Delete the row (incl. the TextBox) and rewrite it
}
private void RedrawTable()
{
Table1.Controls.RemoveAt(1);
WriteRows();
}
}
¿Alguien tiene una solución para que el evento se dispara siempre?
¿Ha resuelto su problema? Tengo el mismo problema con el botón asp creado dinámicamente. Establecí ID en el botón, sin embargo, esto no da ningún resultado. – Nurlan