Genbrug af kode
Der er to metoder til genbrug af kode i ASP.NET
- User controls
- Custom controls
Custom controls
Er ren kode der kompileres til dll filer. Området ligger ligger uden for rammerne af dette kursus.
User controls
er lettere at gå til. Man opretter en User control ved at vælge den som filtype når man opretter en ny fil
Som man ser ligner det en almindelig ASP.NET fil - den har bare fået et nyt efternavn: .ascx
Når man har oprettet filen kan man fylde indhold og kode på siden, som man har lyst til.
Anvendelse af usercontrol
Når man skal bruge en userkontrol på en side er proceduren følgende
- Åben den side kontrollen skal være på
- Find kontrollen i Solution Explorer ude til højre
- Træk kontrollen ind på siden og slip den der, hvor du vil have den
Prøv at skifte til html visning og se hvordan kontrollen lægges ind på siden.
Tilføjelse af egenskaber til en custom control
Det er også muligt at tilføje egenskaber til en usercontrol, så man kan hente værdier ind og ud af kontrollen. Nedenfor er vist et lille eksempel, hvor der flyttes en værdi ind i kontrollen - først selve kontrollen og dernæst den kode der kalder den. Bemærk, at koden her forudsætter, at der er indsat en label på userkontrollen, der hedder lblHilsen
public string Hilsen
{
get { return (string)ViewState["Hilsen"];}
set { ViewState["Hilsen"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
lblHilsen.Text = Hilsen;
}
Public Property Hilsen() As String
Get
Return ViewState("Hilsen")
End Get
Set(ByVal value As String)
ViewState("Hilsen") = value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lblHilsen.Text = Hilsen
End Sub
Når man har indsat userkontrollen på en side kan man udnytte egenskaben på to måder.
Hvis man skifter til html visning på den side der bruger kontrollen, kan man tilføje den hilsen man vil sende til kontrollens html:
<uc1:Footer id="Footer1" runat="server" Hilsen="Hej med dig"></uc1:Footer>
En anden mulighed er at give egenskaben værdi inde fra koden til den side der bruger kontrollen.
protected void Page_Load(object sender, EventArgs e)
{
Footer1.Hilsen = "Hej igen";
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Footer1.Hilsen = "Hej igen"
End Sub
Dynamisk tilføjelse af en user control
Page.FindControl("Form1").Controls.Add(LoadControl("Menu2.ascx"))