2009-05-06 7 views

cevap

50

bu yararlı olabilir. Örnek demek İşaretlemenizin şuna benzer:

<asp:Button ID="button1" runat="server" CommandArgument="MyVal1" 
    CommandName="ThisBtnClick" OnClick="MyBtnHandler" /> 
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2" 
    CommandName="ThatBtnClick" OnClick="MyBtnHandler" /> 

Her iki düğmeleri için aynı olay işleyicisi var ve KomutAdı dayalı ayırt edebilir:

protected void MyBtnHandler(Object sender, EventArgs e) 
{ 
    Button btn = (Button)sender; 
      switch (btn.CommandName) 
      { 
       case "ThisBtnClick": 
        DoWhatever(btn.CommandArgument.ToString()); 
        break; 
       case "ThatBtnClick": 
        DoSomethingElse(btn.CommandArgument.ToString()); 
        break; 
      } 
} 

Kaynak:aspnet-passing-parameters-in-button-click-handler

+0

bağlantı artık ben normal işlev çağrısı işe yaramaz neden anlamıyorum sanırım – madman2890

+0

çalışır). Boş tartışmalarla bir işlevi çağırabilirim, bir işlevi çağırabilir ve ona bir değişken iletebilirim, ancak "işlevim (\" option1 \ ") diyemiyorum. – JFA

5

Çeşitli Düğme tipi kontrolleri bir OnCommand olay yanı sıra OnClick olayı var. OnCommand olayını kullanırken ek parametreleriniz varsa, CommandName ve CommandArgument gibi Düğmeye başvurabilirsiniz. Bunlar daha sonra CommandEventArgs'da erişilebilir.

Aynı yöntemi birden çok düğmede atamak istediğiniz yerlerde yararlıdır ve bu düğmeyi tıklatarak hangi işlevi üreteceğini belirtmek için CommandName ve CommandArgument parametrelerini kullanın. Farklı düğmeleri için aynı EventHandler yöntemi varsa

5

The EventArgs sınıfı bir temel sınıftır. Diğer web yöntemleri, diğer Etkinlik arşivlerini kullanır.

örn. Bir LinkButton'a varsayılan bir EventArgs parametresini içeren bir OnClick olay vardır, ama aynı zamanda bazı ekstra bilgi (yani CommandName & CommandArgument) sahip bir CommandEventArgs : EventArgs parametre alır bir OnCommand olayı vardır. tüm EventHandlers benzer bir imzaya sadık böylece

olay args taban sınıfı

bir yer tutucu olarak sadece vardır.