C# - LinkButton Web szerver kontrol

ASP.NET szintaxis 8. rész

forráskód letöltése
A LinkButton egy olyan kontrol, mely a HTML oldalon linkként jelenik meg (<a href=...></a>), de az ASP.NET-es alkalmazásunkban úgy használhatjuk, olyan jellemző tulajdonságai vannak, mint egy nyomógombnak (Button kontrol).
A LinkButton kontrol szintaxisa
<asp:LinkButton id="LinkButton1" 
     Text="label"
     Command="Command"
     CommandArgument="CommandArgument"
     CausesValidation="true | false"
     OnClick="OnClickMethod"
     runat="server"/>
vagy
<asp:LinkButton id="LinkButton1"
     Command="Command"
     CommandArgument="CommandArgument"
     CausesValidation="true | false"
     OnClick="OnClickMethod"
     runat="server"/>
   Text
</asp:LinkButton>
LinkButton tulajdonságai
CausesValidation
Osztály: System.Web.UI.WebControls.LinkButton
public bool CausesValidation {get; set;}
A linkre való kattintáskor lefutó ellenőrzést engedélyezhetjük/tilthatjuk. Ha helyezünk a web oldalunkra olyan linkeket, melyekhez valamilyen Validator kontrol is tartozik, akkor ezek automatikusan elvégeznék az ellenőrzést, mely nem minden esetben szükséges.
CommandName
Osztály: System.Web.UI.WebControls.LinkButton
public string CommandName {get; set;}
Minden linkhez rendelhetünk egy tetszőleges parancsot. Ez egy általunk választott egyedi sztring lehet. Ennek értékét a Command eseménynél használhatjuk majd fel. E property-t akkor célszerű használni, ha a web oldalon több linket helyeztünk el, melyekhez más és más funkciót szeretnénk rendelni.
CommandArgument
Osztály: System.Web.UI.WebControls.LinkButton
public string CommandArgument {get; set;}
Minden linkhez rendelt parancs érték mellé egy paraméter értéket is rendelhetünk. Ezt a Command eseménynél használhatjuk majd fel.
Text
Osztály: System.Web.UI.WebControls.LinkButton
public virtual string Text {get; set;}
Itt adható meg a link felirata sztringként.
Click
Osztály: System.Web.UI.WebControls.LinkButton
public event EventHandler Click;
Click esemény jön létre, amikor a linkre kattint a felhasználó.
Command
Osztály: System.Web.UI.WebControls.LinkButton
public event CommandEventHandler Command;
Ha a linknél használtuk a CommandName és CommandArgument property-ket, valamint a linkre történő kattintáskor szükségünk lenne ezek értékére, akkor ne a Click eseményt, hanem a Command eseményt használjuk fel. Ez szintén akkor jön létre, ha a linkre kattint a felhasználó, de itt a paraméterként kapott CommandEventArgs osztály property-jeiből megtudhatjuk a beállított értékeket. A CommandEventArgs osztály tartalmaz egy CommandName és CommandArgument property-t, melyeknek értékei egyeznek a link azonos nevű property-jeinél megadott értékekkel.
A példaprogram
Elhelyezve a web lapon egy LinkButton kontrolt érdemes megvizsgálni a létrejött HTML kódot:
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')" style="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 40px">Software Online</a>
Látható, hogy egy normál <a> html parancs lett létrehozva, mely nem egy létező linkre mutat, hanem egy __doPostBack nevű javascriptet aktivizál, mikor a felhasználó az adott linkre kattint. E szkript szimulálja a html form Submit gombjára történő kattintást, vagyis meghívja a web form submit függvényét. Ennek hatására az adatok visszakerülnek szerverünkön alkalmazásunkhoz, ahol létrejön a Command esemény.
Ezt az eseményt felhasználva megtudhatjuk a LinkButton-hoz rendelt parancs kódot és az adott feladatnak megfelelő kódot futtathatjuk.
    private void LinkButton1_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
    {
      if (e.CommandName=="link")
      {
        Response.Redirect(e.CommandArgument.ToString());
      }
    }

ASP.NET szintaxis cikksorozat