2013-03-05 26 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") { ... } 
相關問題