asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 12587
ASPCode.it - Store

  > > Articoli

Creare sezioni comuni con gli User Control

Data di pubblicazione: 14/05/2003        Voto della community: 0,00 (Votanti: 0)


Quando si ha la necessità di inserire contenuti comuni a più pagine del nostro sito, sono particolarmente indicati gli user controls di ASP.NET; con essi è infatti possibile modificare l'aspetto di più pagine intervenendo su un solo file.
Comincereno con un semplice user control per l'header delle nostre pagine. Creiamo un normale file di testo con estensione .ascx. Copiamo il codice seguente:

<%@ Control Language="vb" %>
<table width="90%" align="center">
  <tr>
    <td bgcolor="Coral" align="center">This is my Example Header Control</td>
  </tr>
<table>
<p><p>

Questo è quanto. Ora obbiamo un semplice user control per l'intestazione.

Ora creiamo un controllo appena più complicato come footer. E' più complicato solo per il fatto di includere il codice che scrive la data della nostra ultima modifica. Il codice è riportato di seguito. Contiene alcune righe di codice fra i tag <Script>. Per prima cosa troviamo il percorso fisico della pagina (che conterrà il footer control, non la pagina del controllo stesso). Usiamo quindi GetLastWriteTime per recuperare la data e l'ora della sua ultima modifica (scrittura). Quindi convertiamo il date/time in una stringa con la formattazione desiderata e la visualizziamo in fondo al controllo.

<%@ Control Language="vb" %>
<%@ Import Namespace="System.IO" %>

<script runat="server">
Dim strMod As String

Sub Page_Load(sender As System.object , e As System.EventArgs)
  Dim strPath As String = Page.Request.PhysicalPath
  Dim dteMod As DateTime = File.GetLastWriteTime(strPath)
  strMod = "Last Updated: " & dteMod.ToString("D")
End Sub
</script>

<table width="90%" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#EEEEEE" align="center">This is my Example Footer Control</td>
  </tr>
  <tr><td bgcolor = "#EEEEEE" align="center"><%= strMod %></td></tr>
</table>

Ora creiamo una pagina che contiene i nostri due user control. Il codice dovrebbe essere autoesplicativo. Ho messo un evidenza le linee di codice necessarie ad incorporare i nostri controlli.

<%@ Page Language="vb" %>
<%@ Register TagPrefix="dnj" TagName="Header" src="ExampleHeader.ascx" %>
<%@ Register TagPrefix="dnj" TagName="Footer" src="ExampleFooter.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>HeaderFooter</title>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<dnj:header id="header1" runat="server" />
<table width="90%" align="center">
  <tr>
  <td align="center"><h1>Hello World!</h1></td>
  </tr>
</table>
<dnj:footer id="footer1" runat="server" />
</body>
</html>

E' possibile provare il codice da qui.


Si ringrazia dotnetjohn.com per la gentile concessione dell'articolo (lingua inglese).




Utenti connessi: 12587