ASP.NET : 一个事件的多个元素不起作用

ASP.NET : Multiple elements for an event doesn't work

所以,我的问题是我有很多从数据库动态创建的文本框(x 字段代表两个文本框),我想为所有文本处理相同的事件。

但是当我将字符放入文本框时,该事件会为所有具有此事件的文本框启动。

这是我声明文本框的方式:

            TextBox x = new TextBox();
            x.ID = "txtX" + reader.GetInt32(0);
            x.Text = "x";
            x.Width = Unit.Pixel(50);
            x.AutoPostBack = true;
            x.TextChanged += txtBoxTextChanged;

            TextBox y = new TextBox();
            y.ID = "txtY" + reader.GetInt32(0);
            y.Text = "y";
            y.Width = Unit.Pixel(50);
            y.AutoPostBack = true;
            y.TextChanged += new EventHandler(txtBoxTextChanged);

这是我的活动 txtBox:

protected void txtBoxTextChanged(object sender, EventArgs e)
        {
            TextBox txt = (sender as TextBox);

            Response.Write("<script>alert(\""+ txt.ID +" a pour valeur : "+ txt.Text +"\");</script>");
        }

那么,我怎样才能找到触发事件的控件呢?

谢谢你的帮助

事件调用中的第一个参数是发送者。因此,您可以控制导致事件的发生。

或许您可以为每个文本框添加名称属性,例如

 TextBox x = new TextBox();
 x.Name = "t1";  

在偶数处理程序中,您可以检查该名称,这将允许您识别触发事件的文本框。

TextBox txt = (sender as TextBox);
var name = txt.Name;

我发现了我的错误。

当我创建我的文本框时,我放了一个文本 'X' 或 'Y'。当事件触发时,所有的文本框都有一个文本,这就是为什么它第一次不起作用,但之后,它起作用了。

感谢大家的帮助和建议。