Ich habe dieses Problem mit dynamisch erstellten TextBox.Event-Handler für dynamisch erstellte Steuerelemente nicht ausgelöst
Wenn die TextBox in PageLoad erstellt wird, wurde ihr TextChanged-Ereignis ausgelöst.
Aber wenn ich die TextBox dynamisch löschte und neu erstellte, wurde der TextChanged nicht ausgelöst.
Dies ist der Code:
ASPX-Datei
<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-Datei
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();
}
}
Hat jemand eine Lösung haben, so dass das Ereignis immer ausgelöst wird?
Haben Sie Ihr Problem gelöst? Ich habe das gleiche Problem mit dynamisch erstellten ASP-Taste. Ich setze ID auf die Schaltfläche, dies führt jedoch zu keinem Ergebnis. – Nurlan