DevTrain

Autor: Bernhard Elbl

Erzeugen eines Login UserControls mit C#

UserControls bieten unter den ASP.NET Webforms eine interressante Möglichkeit um
wiederverwendbare Web UserInterfaces zu erstellen. UserControls werden in einem eigenem Dateiformat gespeichert: *.ascx
Zu beachten ist, das die UserControls keine <html>, <body> oder <form> Tags besitzen dürfen, da diese in den aufrufenden Seiten zu implementieren sind.
In unsrem Beispiel handelt es sich um ein UserControl dass die Grundlage für eine Login Seite darstellt.
Als erstes erzeugen wir uns eine ascx-Datei, die das UserInterface mit ein bischen EventCode enthält.

<script language="C#" runat="server" ID=Script1>

  void Page_Load(Object sender, EventArgs E) {

    if (Page.IsPostBack) {
      MyLabel.Text = "Die UserId ist " + UserId + "<br>";
      MyLabel.Text += "Das Passwort ist " + Password + "<br>";
    }   
  }
  public String BackColor = "white";</P><P></script></P><P><tablestyle="background-color:<%=BackColor%>;font: 10pt  verdana;border-width:1;border-style:solid;border-color:black;" cellspacing=15>
  <tr>
    <td><b>Login: </b></td>
    <td><ASP:TextBox id="User" runat="server"/></td>
  </tr>
  <tr>
    <td><b>Password: </b></td>
    <td><ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
  </tr>
  <tr>
    <td></td>
    <td><ASP:Button Text="Go!" runat="server" ID=Button1/></td>
  </tr>
</table>

<asp:Label id="MyLabel" runat="server"/>

In diesem UserControl gibt es zwei InputControls, eines für den Login Namen und eines für das Passwort. Weiterhin gibt es noch ein Label in dem wir uns nach dem Button Event die eingetragenen Werte ausgeben lassen. Dies erreichen wir durch den Page_Load Eventhandler in dem wir abfragen, ob die Seite an den Server zurückgesendet worden ist.
Beim Zurücksenden und erneuten Aufbau der Seite lesen wir die Werte aus und schreiben diese in das LabelControl
Nun haben wir unser eigenes UserControl. Wir können dieses dann in jede beliebige Seite einbinden.
<%@ Page language="C#" autoeventwireup="false" %>
<%@ Register TagPrefix="Tobi" TagName="Login" Src="event_usercontrol.ascx" %>
<html>

<body>
  <form runat="server">
   <Tobi:Login id="MyLogin" runat="server"/>
  </form>
</body>
</html>


In unserem Fall wird die Seite durch die @ Register Direktive includiert und weiter unten im HTML QuellCode durch den Aufruf des Tags <Tobi:Login ...> visualisiert.


Erfasst am: 06.01.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=253
© Copyright 2003 ppedv AG - http://www.ppedv.de