ASP.NET
ASP.NET - Gebruikersbesturing
Zoeken…
Invoering
Gebruikersbesturingselementen zijn containers die op dezelfde manier als ASPX-pagina kunnen worden gevuld met HTML-markeringen en serverbesturingselementen met code-behind. Ze worden behandeld als herbruikbare kleinere eenheden van een pagina, zodat ze niet als stand-alone pagina's lopen en mag niet met html, body of de vorm van HTML-elementen in hen.
Introductie van gebruikersbesturing
Gebruikersbesturingselementen zijn gemaakt voor herbruikbaarheid op ASP.NET-pagina's, vergelijkbaar met masterpagina's. In plaats van de basispaginalay-out te delen, delen gebruikersbesturingen een groep HTML / ASP.NET ingebouwde serverbesturingen of een specifieke formulierlay-out, bijvoorbeeld indiening van opmerkingen of gastnotities.
Een gebruikersbesturing kan zowel HTML-besturingselementen als ASP.NET-serverbesturingselementen bevatten, inclusief client-side scripts.
De bedieningselementen van de gebruiker bevatten meestal de Control
bovenop de definitie:
<%@ Control Language="C#" AutoEventWireup="True" CodeFile="UserControl.ascx.cs" %>
Net als de ASPX-pagina, bestaan bedieningselementen uit markeringen die kunnen worden gekoppeld aan een code achter het bestand om bepaalde gebeurtenissen en taken uit te voeren. Daarom kunnen alle HTML-tags die beschikbaar zijn op de ASPX-pagina worden gebruikt op gebruikersbesturingen behalve <html>
, <body>
en <form>
tags.
Hier is een voorbeeld voor eenvoudige markeringen voor gebruikersbeheer:
<%-- UserControl.ascx --%>
<%@ Control Language="C#" AutoEventWireup="True" CodeFile="UserControl.ascx.cs" %>
<div>
<asp:Label ID="Label1" runat="server" />
<br />
<asp:Button ID="Button1" runat="server" Text="Click Here" OnClick="Button1_Click" />
</div>
Voorbeeld van code achter:
// UserControl.ascx.cs
public partial class UserControl : System.Web.UI.UserControl
{
protected void Button1_Click(Object sender, EventArgs e)
{
Label1.Text = "Hello World!";
}
}
Voordat een gebruikersbesturingselement in de ASPX-pagina wordt ingevoegd, moet de Register
instructie bovenaan de pagina worden aangegeven met verwijzing naar het gebruikersbesturingselement met de bron-URL, tagnaam en tagvoorvoegsel.
<%@ Register Src="UserControl.ascx" TagName="UserControl" TagPrefix="uc" %>
Daarna kunt u gebruikersbeheer op de ASPX-pagina plaatsen, zoals de ingebouwde servercontrole van ASP.NET:
<uc:UserControl ID="UserControl1" runat="server" />
Gebruikersbesturingsinstantie programmatisch maken
Als u een instantie van gebruikerscontrole binnen de ASPX-code achter de pagina wilt instantiëren, moet u als volgt een gebruikerscontroleverklaring schrijven over de gebeurtenis Page_Load
:
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(Object sender, EventArgs e)
{
Control control1 = LoadControl("UserControl.ascx");
Page.Controls.Add(control1);
}
}
Merk op dat het gebruikersbesturings-ASCX-bestand al moet zijn gemaakt bij het uitvoeren van de LoadControl-methode.
Een andere manier om gebruikerscontroles programmatisch te verklaren, is het gebruik van PlaceHolder
:
public partial class Default : System.Web.UI.Page
{
public PlaceHolder Placeholder1;
protected void Page_Load(Object sender, EventArgs e)
{
Control control1 = LoadControl("UserControl.ascx");
Placeholder1.Controls.Add(control1);
}
}
Afhankelijk van uw behoefte, plaatst PlaceHolder
gebruikersbesturingselementen in een container waarin alle serverbesturingselementen worden opgeslagen die dynamisch aan de pagina worden toegevoegd, waarbij Page.Controls
rechtstreeks in de pagina Page.Controls
wat de voorkeur heeft voor het letterlijk weergeven van HTML-besturingselementen.
Aangepaste eigenschappen toevoegen voor gebruikersbeheer
Net als standaard ASP.NET ingebouwde serverbesturingen, kunnen gebruikersbesturingen eigenschappen (attributen) op de definitietag hebben. Stel dat u als volgt een kleureffect wilt toevoegen aan het bestand UserControl.ascx
:
<uc:UserControl ID="UserControl1" runat="server" Color="blue" />
Op dit punt kunnen aangepaste kenmerken / eigenschappen voor gebruikersbesturingen worden ingesteld door eigenschappen in de gebruikersbesturingscode achter te vermelden:
private String _color;
public String Color
{
get
{
return _color;
}
set
{
_color = value;
}
}
Als u bovendien de standaardwaarde voor een eigenschap van een gebruikersbesturing wilt instellen, wijst u de standaardwaarde toe in de constructormethode van gebruikersbesturing.
public UserControl()
{
_color = "red";
}
Vervolgens moet de opmaak van het gebruikersbeheer worden gewijzigd om het kleurkenmerk als volgt voorbeeld toe te voegen:
<%@ Control Language="C#" AutoEventWireup="True" CodeFile="UserControl.ascx.cs" %>
<div>
<span style="color:<%= Color %>"><asp:Label ID="Label1" runat="server" /></span>
<br />
<asp:Button ID="Button1" runat="server" Text="Click Here" OnClick="Button1_Click" />
</div>