2012-10-24 83 views
1

所以..我動態地創建我的網頁上了LinkBut​​ton這樣的:Asp.net創建LinkBut​​ton的,並附上被點擊另一個LinkBut​​ton的時候onclick事件

LinkButton lb = new LinkButton(); 
lb.Click += new EventHandler(lb_Click); 

當點擊這些了LinkBut​​ton之一,我需要知道哪個鏈接被點擊,然後創建另一個LinkBut​​ton並在其上附加一個onclick事件。 (我怎樣才能做到這一點?如果我理解正確,單擊事件不能附加在(這種情況下)lb_Click函數,所以有什麼辦法我仍然可以做到這一點?

編輯:

爲了使這個問題更容易理解,這裏就是我試圖讓,但它不工作:

LinkButton lb = new LinkButton(); 
lb.click += new EventHandler(lb_Click); 

void lb_Click(object sender, EventArgs e) 
{ 
    LinkButton lb2 = new LinkButton(); 
    lb2.click += new EventHandler(lb2_Click); 
} 

void lb2_Click(object sender, EventArgs e) 
{ 
    //do something 
} 

點擊LB2不火的lb2_Click事件。

+0

設置唯一的ID,然後檢查鏈接按鈕事件處理程序。 – pmtamal

+0

你沒看過我寫的東西嗎?如果我在lb_Click中創建新的LinkBut​​ton並嘗試添加新的事件處理程序,單擊LinkBut​​ton將不會啓動該事件。還是我做錯了? –

+0

你是如何將鏈接按鈕添加到頁面的? – Tariqulazam

回答

0

您可以使用此代碼嘗試 - 基於sender argument

LinkButton lb = new LinkButton(); 
lb.Id= "Test1"; 
lb.Click += new EventHandler(lb_Click); 

LinkButton lb2 = new LinkButton(); 
lb2.Id= "Test2"; 
lb2.Click += new EventHandler(lb_Click); 

void LinkButton_Click(Object sender, EventArgs e) 
{ 
    var yourControl = (LinkButton)sender; 
    var id = yourControl.Id; 
    if(id == "Test1") 
    { 
     ... 
    } 
    else if(id == "Test2") 
    { 
     ... 
    } 

} 
+0

問題是我需要在LinkBut​​ton_Click中創建lb2,並且具有完全不同的事件onclick。這有意義嗎? –

+0

是的,你可以執行這種治療,他可以有意義,這不是問題,它取決於你的用例 –

0

是的,是的,是的:我非常,非常的一方。
的人來到這個職位的將來參考:

你的方法被標記爲private(省略訪問修飾符默認爲private),這意味着它們沒有足夠的訪問對它們進行調用。

而是使用protected修飾符來確保它們被正確調用。

像這樣:

LinkButton lb = new LinkButton(); 
lb.click += new EventHandler(lb_Click); 

protected void lb_Click(object sender, EventArgs e) 
{ 
    LinkButton lb2 = new LinkButton(); 
    lb2.click += new EventHandler(lb2_Click); 
} 

protected void lb2_Click(object sender, EventArgs e) 
{ 
    //do something 
} 

希望這有助於爲每個鏈接按鈕一些未來的訪客:)