Artiklar » .NET » <asp:HyperLink> och <asp:LinkButton>

 
 

<asp:HyperLink> och <asp:LinkButton>

Författare: mactommy
Datum: den 18 mars 2009
Antal lästa: 3893
Ej stjärnmärkt

Nu har vi kommit fram till att jämföra HyperLink med en LinkButton. När man ser namnen på kontrollerna så kanske ni börjar fundera på varför jag kommer att visa skillnaden mellan en "knapp" och en "länk". Tittar man på den genererade HTML-koden så kommer man se att båda generar en <a>-tagg. Skillnaden mellan dessa två är att en HyperLink används för att skapa en länk till en sida på egen server eller någonstans på nätet, med eller utan en querystring. LinkButton används som en submitknapp fast med länkens utseende. Där har ni skillnaden i användningsområdet.

Vi börjar med att titta på <asp:Hyperlink> genom att lägga till kontrollen på sidan, Kod:
<asp:HyperLink ID="HyperLink1" runat="server">Hyperlink</asp:HyperLink>

Nu kör vi koden för att se vad som händer. Har ni gjort rätt så kommer texten "Hyperlink" synas på skärmen, dock så kommer den inte vara klickbar. Detta beror på att vi har en hyperlink utan href-atribut. Vi kan lägga till det direkt på våran <asp:Hyperlink>-kontroll men det är ingen sport, utan vi går till CodeBehind för att lösa det hela.

För att lägga till länken så använder vi propertyn "NavigateUrl" och sen länken, Kod:
protected void Page_Load(object sender, EventArgs e)
{
  Hyperlink1.NavigateUrl = "http://www.aspsidan.se ";
}

Kör koden och se att länken blivit klickbar. För att ändra texten "Hyperlink" till något mer passande så kör vi Kod:
HyperLink1.Text = "aspsidan.se";

På det här sättet har enkel möjlighet att byta ut både text och länk i våran kontroll från CodeBehind.

Hur är det om vi vill ändra target på våran länk? Inga problem, använd propertyn "Target"... HyperLink1.Target = "_top";. Det finns inget bra i intellisensen som hjälper oss med de olika target valen, däremot så kan man klicka på kontrollen i designläget och trycka "F4" för att få fram properties fönstret. I listan så hittar ni target med en dropdown och ser vilka val det finns att utnyttja.

Vill man lägga till en title-text på länken så heter propertyn "tooltip", Kod:
HyperLink1.ToolTip = "Sveriges bästa forum...";


Om vi går över till LinkButton så lägger vi till den på våran sida, Kod:
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>

Kör koden och se vad som händer, skillnaden här är att den blir klickbar direkt. Det som LinkButton gör är att lägga till en JavaScripts funktion på våran href-attribut, Kod:
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>

Vi kommer att ändra detta så vi får mer nytta av den och gör så att den går till en kontrollerad del i CodeBehind. I våran kontroll så lägger vi till ett onclick-event, Kod:
<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>

Vi går över till CodeBehind och lägger till ett event för LinkButton1, Kod:
protected void Page_Load(object sender, EventArgs e)
{
}

protected void LinkButton1_Click(object sender, EventArgs e)
{
}

Har vi gjort allt rätt så kommer vi hamna på vårat event protected void LinkButton1_Click när man klickar på våran LinkButton.

För att göra en enkel verifikation att det fungerar så gör vi en enkel kod test. Låt kontrollen <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click"></asp:LinkButton> ligga kvar på sidan. CodeBehind ska vi ändra våran text genom att lägga till vårat text-property på LinkButton, Kod:
protected void Page_Load(object sender, EventArgs e)
{
  LinkButton1.Text = "Klicka på mig...";
}

protected void LinkButton1_Click(object sender, EventArgs e)
{
  LinkButton1.Text = "Du klickade på mig.... bra gjort!";
}

Provkör koden och klicka på länken.

Var det svårt? Nix, jag tänkte väl det... På de flesta kontroller som genererar HTML-kod så har ni möjlighet att lägga till en class med CssClass så att vi inte bara kan ändra en text utan även ändra på länken stylesheet-class om vi har klickat på våran länk.

Återigen så är detta en enkel inblick i några kontroller, samtliga kontroller har flera funktioner men dessa små artikelserier är för att göra er lite mer nyfikna och avskrämda över hur svårt det är med .NET.
 
     

  » Logga in  
 
Användarnamn

Lösenord

 
     

  » Bli medlem  
  Bli medlem på ASPsidan!  
     

     
  Microsoft  
     

  » Partners  
  Comsolvia  
     
  » ANNONS  
  ingen annons än  
     

  » Senast online  
  Endast för inloggade  
  Antal inloggade: 1  
     

Copyright © 2007 www.ASPsidan.se
ingen sponsrar längre ASPsidan med Dedikerad Server
ASPsidan RSS
   
 XHTML / CSS
Det tog 0,0469 sekunder att ladda sidan