3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Creare una semplice WebPart
Iniziamo ad utilizzare le WebParts di ASP.NET 2.0 creando una semplice WebPart che mostrerà a runtime il "Link del giorno", visualizzando un url scelto casualmente tra quelli presenti in un file XML.
Derivando da WebPart "(la classe astratta WebPart è nel namespace System.Web.UI.WebControls.WebParts) creiamo la classe "DailyLinkWebPart" e salviamola nella cartella App_Code:
using System;
using System.Xml;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
namespace WebPartsDemo
{
public class DailyLinksWebPart : WebPart
{
}
}
Aggiungiamo alla nostra classe l'override del metodo della classe padre RenderContents che seleziona un nodo casuale dalla base dati xml e lo visualizza come link html:
protected override void RenderContents(HtmlTextWriter writer)
{
try
{
XmlDocument xml = new XmlDocument();
xml.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data/Links.xml");
XmlNodeList nl = xml.SelectNodes("Links/Link");
int index = new Random().Next(nl.Count);
XmlNode n = nl[index];
string url = n.SelectSingleNode("Url/text()").Value;
string title = n.SelectSingleNode("Title/text()").Value;
writer.Write("<a href=\"" + url + "\">" + title + "</a>");
}
catch (Exception ex)
{
writer.Write("<i>Servizio non disponibile</i>");
}
} Il codice completo della classe DailyLinkWebPart e dell'intero progetto Web è disponibile in allegato a questo articolo.
Pagine Web personalizzabili
Dopo aver creato la nostra prima WebPart aggiungiamo al progetto Web un nuovo Web Form per utilizzare concretamente la personalizzazione fornita dal portal framework di ASP.NET 2.0 e inseriamo:
- la registrazione del controllo DailyLinkWebPart
- un controllo WebPartManager per la gestione della personalizzazione; si noti che questo controllo deve essere inserito prima di ogni altro controllo relativo alla personalizzazione.
- un LinkButton per mostrare/nascondere l'interfaccia utente di personalizzazione. L'attivazione della modalità di personalizzazione si ottiene impostando la proprietà DisplayMode del WebPartManager a WebPartManager.CatalogDisplayMode.
- due WebPartZone (inizialmente vuote) in cui sarà possibile inserire i controlli personalizzati e spostarli tramite drag&drop
- un controllo CatalogZone contenente un controllo DeclarativeCatalogPart che metterà a disposizione la nostra WebPart dei collegamenti del giorno, consentendone l'aggiunta alle due WebPartZone disponibili
<%@ Page Language="C#" %>
<%@ Register TagPrefix="wpd" Namespace="WebPartsDemo" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void btnCustomize_Click(object sender, EventArgs e)
{
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>WebParts DEMO</title></head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager id="WebPartManager1" runat="server" />
<asp:LinkButton id="btnCustomize" runat="server" Text="Personalizza" OnClick="btnCustomize_Click" />
<asp:WebPartZone id="WebPartZone1" runat="server" HeaderText="Zona 1"></asp:WebPartZone>
<asp:WebPartZone id="WebPartZone2" runat="server" HeaderText="Zona 2"></asp:WebPartZone>
<asp:CatalogZone id="CatalogZone1" runat="server" HeaderText="Gestione WebPart">
<ZoneTemplate>
<asp:DeclarativeCatalogPart id="DeclarativeCatalogPart1" runat="server" Title="Predefinite:" ChromeType="TitleOnly">
<WebPartsTemplate>
<wpd:DailyLinkWebPart id="DailyLinkWebPart1" runat="server" Title="Link del giorno" />
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
</ZoneTemplate>
</asp:CatalogZone>
</form>
</body>
</html>
3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Utilità
Contenuti
Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
