2013-03-05 19 views
0

我想编写一个方法来处理webform上几个服务器控件的文本更改事件。当文本更改事件触发时,我需要将控件ID传递给我的方法。换句话说,当我的方法被调用时,我必须找出哪个控件导致文本更改事件触发。这可能吗?通常我会使用命令参数属性,但我不认为这可用于文本框和列表框控件。有什么建议么?将控件ID传递给文本更改事件的自定义方法

+1

使用sender参数。请参阅http://stackoverflow.com/questions/10583824/identify-which-textbox-has-fired-a-text-changed-event – kampsj 2013-03-05 15:52:18

回答

2

使用Sender(第一个)参数在框TextChanged功能:

protected void TextBox1_TextChanged(object sender, EventArgs e) 
{ 
     TextBox tb = sender as TextBox; 

     if (tb != null) 
     { 
      string id = tb.ID; 
     } 
} 
+0

嗯,猜我是这使得它比需要更复杂 – ovaltein 2013-03-05 16:16:59

+0

很高兴它有帮助: ) – Blachshma 2013-03-05 16:20:17

0

事件处理程序有两个参数:object sender, eventargs e

sender参数是你在找什么。它实际上是对称为事件处理程序的对象的引用,您只需将其转换为正确的类型即可。

TextBox fooBar = sender as TextBox; 

然后如果你愿意,你可以得到名称:

if(fooBar.Name == "someName") { ... } 
相关问题