ASP.NET e Xml – Codice sorgente dell’esempio

Sorgenti: LeggiXml.aspx

Scarica i sorgenti: aspnet11.zip

Articolo a cui si riferisce il codice: ASP.NET e Xml

LeggiXml.aspx

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3 
  4 <%@ Page Language="VB" Debug="True" %>
  5 
  6 <%@ Import Namespace="System.Data" %>
  7 <%@ Import Namespace="System.Data.OleDb" %>
  8 
  9 <%@ Register TagPrefix="ANet" TagName="Footer" Src="includes/footer.ascx"%>
 10 
 11 <!
 12 # nome: XMLLeggi.aspx
 13 # scritto da: Antonio Volpon
 14 # data creazione: 23 Novembre 2001
 15 # ultima modifica: 23 Novembre 2001
 16 # copyright: Antonio Volpon
 17 >
 18 
 19 <script language="vb" runat="server">
 20 
 21 Sub CaricaXml()
 22   
 23   Dim objDataSet As New DataSet()
 24   Dim objTableLibro As DataTable
 25   Dim objTableView As DataView
 26   
 27   Dim strUrlPath As String
 28   Dim strLocPath As String
 29   
 30   strUrlPath = Left(Request.Path,InStrRev(Request.FilePath,"/")) & "Xml/"
 31   
 32   strLocPath = Request.MapPath(strUrlPath)
 33   
 34   objDataSet.ReadXmlSchema(strLocPath & "XmlSchema.xml")
 35 
 36   risposta.innerHtml += "Caricato il file <a target=‘_blank’ href=’"& strUrlPath & "XmlSchema.xml’>" & strUrlPath & "XmlSchema.xml</a><br>"
 37 
 38   objDataSet.ReadXml(strLocPath & "XmlDocument.xml")
 39   
 40   risposta.innerHtml += "Caricato il file <a target=‘_blank’ href=’"& strUrlPath & "XmlDocument.xml’>" & strUrlPath & "XmlDocument.xml</a><br>"
 41   
 42   objTableLibro = objDataSet.Tables("Libro")
 43     
 44   objTableView = objTableLibro.DefaultView
 45   
 46   libri.DataSource = objTableView
 47   libri.DataBind()
 48   
 49 End Sub
 50 
 51 Sub Change_Index(objSender As Object, objArgs As DataGridPageChangedEventArgs)
 52 
 53   libri.CurrentPageIndex = objArgs.NewPageIndex
 54   CaricaXml()  
 55   
 56 End Sub
 57   
 58 Sub Page_Load()
 59 
 60   If Not Page.IsPostBack() Then
 61 
 62     CaricaXml()          
 63   
 64   End If
 65 
 66 End Sub
 67 
 68 </script>
 69 
 70 <html>
 71 
 72   <head>
 73     <link rel="stylesheet" href="css/aspnet.css" type="text/css">
 74     </link>
 75     <title>Da XML a DataSet</title>    
 76   </head>
 77   
 78   <body>
 79     <div class="titolo">
 80       Da XML a DataSet
 81     </div>
 82     
 83     <hr noshade="true" size="1" width="100%">  
 84     
 85     <center>
 86     
 87     <form runat="server">
 88     
 89  <asp:DataGrid id="libri" runat="server"
 90  AutoGenerateColumns="False"
 91  HeaderStyle-BackColor="#CCCCCC"
 92  HeaderStyle-HorizontalAlign="center"
 93  Width="80%"
 94  AllowPaging="True"
 95  PageSize="10"
 96  PagerStyle-HorizontalAlign="Right"
 97  PagerStyle-Mode="NumericPages"
 98  OnPageIndexChanged="Change_Index"
 99  AllowSorting="True">

100      
101       <SelectedItemStyle BackColor="Yellow"></SelectedItemStyle>
102       <AlternatingItemStyle BackColor="LightGreen"></AlternatingItemStyle>     
103       <Columns>
104 
105         <asp:TemplateColumn HeaderText="Seleziona" ItemStyle-HorizontalAlign="Center">
106           <ItemTemplate>
107             <asp:Button CommandName="Select" Text="x" runat="server" />
108           </ItemTemplate>
109         </asp:TemplateColumn>
110   
111         <asp:BoundColumn DataField="IdLibro" HeaderText="Id" ItemStyle-HorizontalAlign="Left" SortExpression="IdLibro" ReadOnly="True"/>
112         
113         <asp:TemplateColumn HeaderText="Titolo" ItemStyle-HorizontalAlign="Left" SortExpression="Titolo">
114           <ItemTemplate>
115             <%# Container.DataItem("Titolo")%>  
116           </ItemTemplate>
117           <EditItemTemplate>
118             <asp:TextBox id="titolo" text=’<%# Container.DataItem("Titolo") %>‘ runat="server"/>
119             <asp:RequiredFieldValidator ControlToValidate="titolo" Display="Dynamic" runat="server" >
120               Valore obbligatorio
121             </asp:RequiredFieldValidator>            
122           </EditItemTemplate>          
123         </asp:TemplateColumn>
124         
125         <asp:BoundColumn DataField="EdizioneAnno" HeaderText="Anno" ItemStyle-HorizontalAlign="Left" SortExpression="EdizioneAnno" />
126         <asp:BoundColumn DataField="Collana" HeaderText="Collana" ItemStyle-HorizontalAlign="Left" SortExpression="Collana" />
127         
128       </Columns>
129 
130    </asp:DataGrid>
131     
132     <div id="risposta" class="txt" runat="server" EnableViewState="false"></div>
133 
134     </form>
135 
136     </center>
137 
138  <ANet:Footer id="Menu" runat="server" />
139     
140   </body>
141   
142 </html>

ASP.NET e Xml

Corso ASP.NET: undicesima puntata

Esempio funzionante | Sorgente | Scarica il sorgente (zip)

ASP.NET utilizza Xml in modo trasparente, come vedremo nel nostro esempio.

Sono molti gli oggetti di documenti Xml a disposizione dello sviluppatore in ambiente ASP.NET e che sono figli del namespace System.Xml:

  1. XmlDocument: utilizzato per accedere ai file Xml come previsto dallo standard W3c per il Dom Xml
  2. XmlDataDocument: estende il precedente oggetto con caratteristiche che consente di trattare un documento Xml come fosse una sorgente dati relazione (e viceversa) e quindi di “connettersi” ad un documento Xml
  3. XPathDocument: è un oggetto molto prestazionale utilizzato per eseguire interrogazioni XPath sul documento (così da “navigarlo”)

Non ci soffermiamo ulteriormente su questi oggetti, né su quelli (come l’XmlTextReader e l’XmlTextWriter) che creano documenti nodo dopo nodo oltre a leggerli da disco fisso o convertendoli da altri oggetti. Per questo vi rimandiamo alla esauriente documentazione del .Net Framework.

Nel prossimo esempio vediamo piuttosto come sia possibile caricare un documento Xml da un DataSet e visualizzarlo, in modo trasparente, in un DataGrid.

Caricare un DataSet da un file Xml

Lo scopo ultimo dell’esempio è di visualizzare in una DataGrid pagina dei dati provenienti da un file Xml:

È stata realizzata una funzione CaricaXml contenente il codice per popolare il DataSet.

 34   objDataSet.ReadXmlSchema(strLocPath & "XmlSchema.xml")

Con il metodo ReadXmlSchema del DataSet viene caricato da disco il file di definizione dell’Xml, così da poter verificare la conformità del documento Xml che verrà successivamente aperto.

 38   objDataSet.ReadXml(strLocPath & "XmlDocument.xml")

Con altrettanta semplicità viene caricato il documento Xml, utilizzando questa volta il metodo ReadXml.

 42   objTableLibro = objDataSet.Tables("Libro")
 43     
 44   objTableView = objTableLibro.DefaultView
 45   
 46   libri.DataSource = objTableView
 47   libri.DataBind()

A questo punto, tra tutti i nodi, viene scelto quello che rappresenta i libri (cioè i nodi identificati dal tag Libri).

Come per un normale DataBind viene poi associata la vista di default al controllo DataGrid.

ASP.NET: Politiche di Caching – Codice sorgente dell’esempio

Sorgenti: cache_file.aspx

Scarica i sorgenti: aspnet13.zip

Articolo a cui si riferisce il codice: ASP.NET: Politiche di Caching


1 < !DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
2 “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
3
4 < %@Register TagPrefix=”ANet” TagName=”Footer” Src=”includes/footer.ascx”%>
5 < %@ Page Language=”VB” Debug=”True” %>
6
7 < %@ Import Namespace=”System.Xml” %>
8 < %@ Import Namespace=”System.Xml.Xsl” %>
9
10 < !
11 # nome: cache_file.aspx
12 # scritto da: Antonio Volpon
13 # data creazione: 30 Novembre 2001
14 # ultima modifica: 30 Novembre 2001
15 # copyright: Antonio Volpon
16 >
17
18 < script language=”vb” runat=”server”>
19
20
21 Public Sub Page_Load(sender As Object, e As EventArgs)
22
23 Dim objXml As New XmlDocument
24 Dim objXsl As New XslTransform()
25
26 If (IsNothing(Cache(“xml.xml”))) Then
27 risposta.innerText = “Elemento non presente in cache…lo carico”
28 PopolaCache(“xml.xml”)
29 Else
30 risposta.innerText = “Elemento già presente in cache”
31 End If
32
33 objXsl.Load(Server.MapPath(“xsl.xsl”))
34
35 objXml = CType(Cache(“xml.xml”), XmlDocument)
36
37 libri.Document = objXml
38 libri.Transform = objXsl
39
40 End Sub
41
42 Public Sub PopolaCache(strFileXml As String)
43
44 Dim objXml As New XmlDocument
45
46 objXml.Load(Server.MapPath(strFileXml))
47
48 Dim objCDep as new CacheDependency(Server.MapPath(strFileXml))
49
50 Cache.Insert(strFileXml, objXml, objCDep)
51
52 End Sub
53
54 script>
55
56
57 < html>
58
59 < head>
60 < link rel=”stylesheet” href=”css/aspnet.css” type=”text/css”>
61 link>
62 < title>DataReadertitle>
63 head>
64
65 < body>
66
67 < div class=”titolo”>
68 DataReader
69 div>
70
71 < hr noshade=”noshade” size=”1″ width=”100%” />
72
73 < asp:xml id=”libri” runat=”server”/>
74
75 < div class=”txtb” id=”risposta” runat=”server”>div>
76
77 < ANet:Footer id=”Menu” runat=”server” />
78
79 body>
80
81 html>