Artiklar » .NET » asp:Label och asp:Literal

 
 

asp:Label och asp:Literal

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

Nu tänkte jag enkelt visa hur de två vanliga kontrollerna för att skriva ut en text ifrån CB fungerar. Det finns andra varianter att skriva ut en text på, men nu är det kontrollerna som ska få synas lite.

De kontrollerna som jag tänkte visa nu är <asp:Label> och <asp:Literal>. Skillnaden mellan dessa två är att den ena genererar HTML-kod medan den andra lämnar inget kladd efter sig.

Hur fungerar dessa?
Börja med att starta ett nytt projekt i VWD och lägg ut <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> och <asp:Literal ID="Literal1" runat="server"></asp:Literal> på default.aspx-sidan. Behåll ID:et på dessa för tillfället eftersom det blir enklare att visa och förstå om man använder de genererade namnen.

När du har klickat ut dessa på din sida, så går du till filen "default.aspx.cs". Här har vi codebehind filen (eller det jag kallar codebehind), det finns möjlighet att lägga den här koden på din default.aspx-sida, men jag rekomenderar att sära på dessa.

Skillnaden att lägga in text i dessa är inte särskilt stor från CB, typ ingen... Kod:
protected void Page_Load(object sender, EventArgs e)
{
  Literal1.Text = "Min första Literal";
  Label1.Text = "Min första Label";
}

Kör koden och titta vad som händer på sidan och i den genererade HTML-koden. "Label1"-texten har hamnat i en <span> medan "Literal"-texten står som vanlig text. Vi kan även se att våran <span> har fått ett autogenererat ID som kommer att kunna växa beroende på var vi använder våran label.

Eftersom en literal inte genererar någon HTML-kod så kan vi heller inte sätta en CSS-class på våran literal. På våran label kan vi lägga till Label1.CssClass = "online"; i CB. Detta gör att vi kan lätt välja en CSS-class ifrån CB beroende på vad det är för text som vi vill peta in.

T.ex. om en person är inloggad så ska våran label ha CSS-classen "online", Kod:
protected void Page_Load(object sender, EventArgs e)
{
  bool isOnline = true;
  Literal1.Text = "Min första Literal";
  Label1.Text = "Min första Label";
  if(isOnline)
    Label1.CssClass = "online";
}

Nu har jag lagt att min boolean alltid är true. Ändra till bool isOnline = false; och kolla skillnaden på den genererade HTML-koden.

Vill man ha full kontroll på sin <span> så kan man använda sig utav <span class="member"><asp:Literal ID="Literal1" runat="server"></asp:Literal></span>. Dock faller detta sättet om man nu vill ha möjlighet att byta CSS-class beroende på om man är inloggad eller ej på texten i våran literal.

Både literal och label har möjlighet att dölja text, genom att ange "visible" så kan vi gå in och dölja kontrollen. Normalt ifrån våran literal <asp:Literal ID="Literal1" runat="server" visible="false"></asp:Literal> eller ifrån CB: Literal1.Visible = false;. Detta funkar även på våran label. Genom att lägga t.ex. telefonnummer i en literal och sätta den som visible="false" så har vi en enkel möjlighet ifrån CB att visa den om man är inloggad eller ej, Kod:
protected void Page_Load(object sender, EventArgs e)
{
  bool isOnline = true;
  Literal1.Text = "Min första Literal";
  Label1.Text = "Min första Label";
  if(isOnline)
  {
    Literal1.Visible = true;
    Label1.CssClass = "online";
  }
}

Om man är "online" så sätts classen till "online" och man kommer nu se texten "Min första Literal" på sidan.

Om man skriver Label1. i VWD så kommer intellisensen att arbeta och ge er förslag på funktioner ni kan använda. Många kommer upp, men dessa behöver man inte använda. T.ex. så kan ni sätta border med Label1.BorderWidth = 2;. Dock så rekomenderar jag det inte eftersom det skapas ett style-attribut på våran <span>, alla style-attribut ska man prova undvika så långt det går.

Jag kommer fortsätta skriva dessa små artikelserier för att man ska inse att det kanske inte är så krångligt med C# om man håller det på en ytlig nivå, sen finns det alla möjligheter i världen att grotta ner sig så att håret trillar av. Men det är inte där vi ska börja.
 
     

  » 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,0625 sekunder att ladda sidan