2010-10-28 14 views
13

içinde yöntem için LinkButton'ın OnClick olayını ayarlama Codebehind'imden bir LinkButton yapıyorum ve onclick'i bir yönteme atamalı ve ona bir parametre iletmeliyim. Bugüne kadar bu var:CodeBehind

LinkButton lnkdel = new LinkButton(); 
lnkdel.Text = "Delete"; 

böyle görünüyor onu geçmek isteyen yöntemi:

protected void delline(string id) 
     { 

     } 

cevap

31

Bunu ona aktaramazsınız yönteminde, tıklama etkinliği temsilcisini, ele alabilecek bir yönteme atamanız gerekir. Bunun gibi

: Eğer bir argüman iletilmesi istiyorsanız,

lnkdel.Click += new EventHandler(DynamicClick); 

CommandArgument kullanın ve farklı bir temsilci gerekir:

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

herhangi bir olay gibi click olayı atama :

( )
lnkDel.Command += new CommandEventHandler(DynamicCommand) 
lnkDel.CommandArgument = 1234; 

sen> = C# 3 desin BTW, sen de anonim yöntemlerden serinlik kullanabilirsiniz:

lnkDel.Command += (s, e) => { 
    Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument; 
}; 
+0

Teşekkür dostum, ben ikinci yöntemi kullanmaya çalışıyorum sen amaç olarak gönderilen yazı, bir kimliğin silinmesi için geçmesidir. .OnCommand intellisense listesinde görünmüyordu ve yine de yazmaya başladığımda, LinkButton'un koruma düzeyi nedeniyle devre dışı olduğunu söylüyor? – Chris

+1

@Chris - evet, linkbutton ile 'bug/özellik' hakkında unuttum. Bunu deneyin: 'lnkDel.Command + = yeni CommandEventHandler (DynamicCommand)' veya sadece 'lnkDel.Command + = DynamicCommand'. – RPM1984

+0

Teşekkürler dostum, derler ama Komuta giriyor gibi görünmüyor - bir şey mi eksik? C# 3 yöntemini de denedim, hangi derler ama bir daha asla bu yönteme girmez – Chris

1

bu olay için fonksiyon prototipidir:

protected void lnkdel_OnClick(object _sender, EventArgs _args) 
{ 
    LinkButton src = (LinkButton)_sender; 
    // do something here... 
} 

ile atama :

LinkButton lnkdel = new LinkButton(); 
lnkdel.Text = "Delete"; 
lnkdel.OnClick += new EventHandler(lnkdel_OnClick); 
İlgili konular