2
Tags:
asp.net
Skrevet af
Bruger #7741
@ 11.07.2005
I sidste lektion kiggede vi på brug af knap-kontroller, og i denne lektion udvider vi værktøjskassen med en tekstboks og en etiket.
Tekstboks
Sammen med knappen er tekstboksen meget benyttet, og bruges til at indsamle oplysninger fra brugeren. Kontrollens opmærkning i sin mest simple form ser således ud:
<asp:textbox id=TextBox1 text="tekst" runat="server" />
Kontrollens vigtigste egenskab er Text, som kan bruges til enten at tildele eller aflæse værdier.
TextBox1.Text = "Dette er en test"
Dim Tmp As String = TextBox1.Text
I koden tildeles tekstboksen en værdi, som efterfølgende aflæses.
Ud over Text er der flere interessante egenskaber, hvoraf flere af dem dog er fælles for alle kontroller:
[table][tr][td]
Egenskab[/td] [td]
Beskrivelse[/td][/tr][tr][td]
AccessKey[/td] [td]Bogstav til en eventuel genvejstast.[/td][/tr][tr][td]
AutoPostBack[/td][td]Tildelt True-værdi vil tekstboksen automatisk gennemtvinge en postback når teksten i tekstboksen ændres, og der tabuleres videre til næste kontrol.[/td][/tr][tr][td]
BackColor[/td] [td]Baggrundsfarven.[/td][/tr][tr][td]
Columns[/td] [td]Bredden på tekstboksen angivet i tegn.[/td][/tr][tr][td]
CssClass[/td] [td]Eventuelt stylesheet der skal benyttes.[/td][/tr][tr][td]
Font-Name[/td] [td]Navnet på den benyttede font.[/td][/tr][tr][td]
Font-Size[/td] [td]Størrelsen på den benyttede font.[/td][/tr][tr][td]
ForeColor[/td] [td]Forgrundsfarven (eksempelvis Red eller #00FF00)[/td][/tr][tr][td]
Height[/td] [td]Højden på tekstboksen.[/td][/tr][tr][td]
MaxLength[/td] [td]Det maksimalt tilladte antal tegn.[/td][/tr][tr][td]
ReadOnly[/td] [td]Tildelt en True-værdi kan tekstboksen ikke redigeres, men udelukkende aflæses.[/td][/tr][tr][td]
Rows[/td][td]Antal linjer angivet i tegn.[/td][/tr][tr][td]
Text[/td] [td]Indholdet i tekstboksen.[/td][/tr][tr][td]
TextMode[/td] [td]Kan enten tildeles værdien single-line, multiline, eller password. Ved password erstattes tegn med stjerner.[/td][/tr][tr][td]
ToolTip[/td][td]Eventuel hjælpetekst.[/td][/tr][tr][td]
Width[/td] [td]Bredden på kontrollen.[/td][/tr][tr][td]
Wrap[/td][td]Fortæller om tekst i tekstboksen må splittes over flere linjer.[/td][/tr]
[/table]
Her er et kort eksempel på brug af tekstboksen:
<%@ Page Language="C#" %>
<script runat="server">
void LinkButton1_Click(Object sender, EventArgs e){
// Henter data fra TextBox1, laver det om
// til store bogstaver, og tildeler den nye
// streng til TextBox2
TextBox2.Text = TextBox1.Text.ToUpper();
}
</script>
<html><body>
<form runat="server">
<asp:TextBox id="TextBox1" runat="server" />
<br/>
<asp:TextBox ReadOnly="True" id="TextBox2" runat="server"/>
<br/>
<asp:LinkButton id="LinkButton1" onclick="LinkButton1_Click"
text="Klik her" runat="server"/>
</form>
</body></html>
<%@ Page Language="VB" %>
<script runat="server">
Sub LinkButton1_Click(sender As Object, e As EventArgs)
' Henter data fra TextBox1, laver det om
' til store bogstaver, og tildeler den nye
' streng til TextBox2
TextBox2.Text = TextBox1.Text.ToUpper()
End Sub
</script>
<html><body>
<form runat="server">
<asp:TextBox id="TextBox1" runat="server" />
<br/>
<asp:TextBox ReadOnly="True" id="TextBox2" runat="server"/>
<br/>
<asp:LinkButton id="LinkButton1" onclick="LinkButton1_Click"
text="Klik her" runat="server"/>
</form>
</body></html>
Siden består af tre kontroller - to tekstbokse og en knap (i modsætning til forrige lektion benyttes denne gang en LinkButton i stedet for en traditionel knap). Når der klikkes på knappen, konverteres eventuel tekst fra TextBox1 til store bogstaver og placeres i TextBox2.
Bemærk også, at der kun kan aflæses fra TextBox2 idet egenskaben ReadOnly er tildelt værdien True i selve opmærkningen.
AutoPostBack
Egenskaben AutoPostBack kan være praktisk i nogle situationer. Den giver, som navnet antyder, mulighed for at foretage en automatisk postback når tekst ændres, og der "tabuleres" ud af kontrollen. Metoden, der kan afvikles i forbindelse med en postback (hvad enten denne er gennemtvunget af kontrollen selv grundet AutoPostBack eller gennemtvunget af en anden kontrol på formularen), defineres i opmærkningen i metoden OnTextChanged. Se opmærkningen i TextBox1 i følgende eksempel:
<%@ Page Language="C#" %>
<script runat="server">
void TextBox1_TextChange(Object sender, EventArgs e){
// Henter data fra TextBox1, laver det om
// til store bogstaver, og tildeler den nye
// streng til TextBox2
TextBox2.Text = TextBox1.Text.ToUpper();
}
</script>
<html><body>
<form runat="server">
<asp:TextBox AutoPostBack="True" id="TextBox1"
OnTextChanged="TextBox1_TextChange" runat="server" />
<br/>
<asp:TextBox ReadOnly="True" id="TextBox2" runat="server"/>
</form>
</body></html>
<%@ Page Language="VB" %>
<script runat="server">
Sub TextBox1_TextChange(sender As Object, e As EventArgs)
' Henter data fra TextBox1, laver det om
' til store bogstaver, og tildeler den nye
' streng til TextBox2
TextBox2.Text = TextBox1.Text.ToUpper()
End Sub
</script>
<html><body>
<form runat="server">
<asp:TextBox AutoPostBack="True" id="TextBox1"
OnTextChanged="TextBox1_TextChange" runat="server" />
<br/>
<asp:TextBox ReadOnly="True" id="TextBox2" runat="server"/>
</form>
</body></html>
Siden består denne gang af to tekstbokse (ingen knap). Når der tabuleres fra TextBox1 til TextBox2, bliver metoden TextBox1_TextChange afviklet, og den sørger (igen) for at konvertere til store bogstaver.
Label
Vi slutter denne lektion af med at kigge på en simpel, men meget brugbar kontrol - nemlig Label-kontrollen (etiket). Den kan benyttes til at skrive tekst til brugeren via kode, og har ingen anden funktionalitet.
Til gengæld er det nemt at styre eksempelvis farve og font - se følgende kode:
<%@ Page Language="C#" %>
<script runat="server">
void Button1_Click(object sender, EventArgs e) {
Label1.Text = String.Concat("Resultat: ",TextBox1.Text.ToUpper());
}
</script>
<html><body>
<form runat="server">
<asp:TextBox id="TextBox1" runat="server"/><br/>
<asp:Button id="Button1" onclick="Button1_Click" runat="server"
Text="Klik på mig"/><br/>
<asp:Label id="Label1" runat="server" forecolor="Red"
font-names="Verdana" backcolor="#E0E0E0"/>
</form>
</body></html>
<%@ Page Language="VB" %>
<script runat="server">
sub Button1_Click(sender As object, e As EventArgs)
Label1.Text = String.Concat("Resultat: ",TextBox1.Text.ToUpper())
end sub
</script>
<html><body>
<form runat="server">
<asp:TextBox id="TextBox1" runat="server"/><br/>
<asp:Button id="Button1" onclick="Button1_Click" runat="server"
Text="Klik på mig"/><br/>
<asp:Label id="Label1" runat="server" forecolor="Red"
font-names="Verdana" backcolor="#E0E0E0"/>
</form>
</body></html>
I koden skabes en side med tre kontroller - en tekstboks, en knap og en etiket. Etiketten har som udgangspunkt intet indhold, men når den tildeles tekst, vil baggrundsfarven være grå, forgrundsfarven rød, og der benyttes en Verdana-font.
Når der klikkes på knappen, vil etiketten blive tildelt værdien "Resultat: " og indholdet af tekstboksen konverteret til store bogstaver. Se i øvrigt figur 1.
Figur 1 Brug af en etiket (Label)
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (0)
Du skal være
logget ind for at skrive en kommentar.