begin process at 2012 02 05 02:03:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > LIVRE D'OR EN ASP.NET ET XML

LIVRE D'OR EN ASP.NET ET XML


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ASP.Net Source .NET ( DotNet ) Niveau :Débutant Date de création :17/09/2002 Date de mise à jour :17/09/2002 16:32:49 Vu :11 263

Auteur : phildarvador

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Les commentaires sont enregistrés dans un fichier .xml où la page.aspx va les lire.
Je me suis inspiré d'un bouquin pour le faire, et ce code permet déjà de comprendre la logique du .net

Source

  • 'fichier suggest.xml
  • '-------------------------------
  • <Messages>
  • <Message>
  • <Nom>Philippe</Nom>
  • <EMail>truc@yahoo.fr</EMail>
  • <Contenu>Héhé =)</Contenu>
  • <DateMessage>17/09/2002 15:22:03</DateMessage>
  • </Message>
  • </Messages>
  • 'fichier suggest.aspx
  • '-----------------------------
  • <%@ Page Language="vb" Debug="true" %>
  • <%@Import NameSpace="System.XML"%>
  • <script runat=server>
  • Class Message
  • Public Nom as String
  • Public EMail as String
  • Public Contenu as String
  • Public DateMessage as Date
  • End Class
  • Sub Page_Load(sender as Object, e as EventArgs)
  • if Not Page.IsPostBack Then
  • guestbook.DataSource = GetDataSource
  • guestbook.DataBind
  • End If
  • End Sub
  • Sub btn_Click(sender as Object, e as EventArgs)
  • Dim doc as New XMLDocument
  • doc.Load(Server.MapPath("suggest.XML"))
  • Dim mElement as XMLElement
  • mElement = doc.CreateElement("Message")
  • Dim mSubElement as XMLElement
  • mSubElement = doc.CreateElement("Nom")
  • mSubElement.InnerText = txtNom.Text
  • mElement.AppendChild(mSubElement)
  • mSubElement = doc.CreateElement("EMail")
  • mSubElement.InnerText = txtEMail.Text
  • mElement.AppendChild(mSubElement)
  • mSubElement = doc.CreateElement("Contenu")
  • mSubElement.InnerText = txtComm.Text
  • mElement.AppendChild(mSubElement)
  • mSubElement = doc.CreateElement("DateMessage")
  • mSubElement.InnerText = DateTime.Now.ToString
  • mElement.AppendChild(mSubElement)
  • doc.DocumentElement.AppendChild(mElement)
  • doc.Save(Server.MapPath("suggest.XML"))
  • guestbook.DataSource = GetDataSource
  • guestbook.DataBind
  • txtNom.Text = ""
  • txtEmail.Text = ""
  • txtComm.Text = ""
  • End Sub
  • Function GetDataSource() as ArrayList
  • Dim mArray as New ArrayList
  • Dim doc as New XMLDocument
  • doc.Load(Server.MapPath("suggest.XML"))
  • Dim mNodeChild as XMLNode
  • Dim mNodeList as XMLNodeList
  • mNodeList = doc.GetElementsByTagName("Message")
  • For each mNodeChild in mNodeList
  • Dim mMessage as New Message
  • mMessage.Nom = mNodeChild.ChildNodes(0).InnerText
  • mMessage.EMail = mNodeChild.ChildNodes(1).InnerText
  • mMessage.Contenu = mNodeChild.ChildNodes(2).InnerText
  • mMessage.DateMessage = CDate(mNodeChild.ChildNodes(3).InnerText)
  • mArray.Add(mMessage)
  • Next
  • GetDataSource = mArray
  • End Function
  • </script>
  • <html><body>
  • <form runat=server>
  • <table width="500" border="0" cellspacing="5">
  • <tr valign="top">
  • <td>Nom</td>
  • <td>
  • <asp:TextBox id="txtNom" runat=Server/>
  • </td>
  • </tr>
  • <tr valign="top">
  • <td>EMail</td>
  • <td>
  • <asp:TextBox id="txtEMail" runat=Server/>
  • </td>
  • </tr>
  • <tr valign="top">
  • <td>Commentaire</td>
  • <td>
  • <asp:TextBox id="txtComm" TextMode=Multiline Width=250 Rows=5 runat=Server/>
  • </td>
  • </tr>
  • <tr><td colspan=2 align=right>
  • <asp:Button id=btn OnClick=btn_Click Text=Enregistrer runat=Server/>
  • </td>
  • </tr>
  • </table>
  • <asp:DataList id=guestbook runat=Server Border="1">
  • <HeaderStyle
  • font-bold=True
  • forecolor="White"
  • backcolor="Black"/>
  • <HeaderTemplate>
  • Vos suggestions
  • </HeaderTemplate>
  • <ItemTemplate>
  • Message du <%# Container.DataItem.DateMessage.ToString%><br/>
  • De <a href=mailto:<%# Container.DataItem.EMail%>><%# Container.DataItem.Nom%></a>
  • <p><%# Container.DataItem.Contenu%></p>
  • </ItemTemplate>
  • <AlternatingItemStyle BackColor="Silver"/>
  • </asp:DataList>
  • </form>
  • </body></html>
'fichier suggest.xml
'-------------------------------

<Messages>
  <Message>
    <Nom>Philippe</Nom>
    <EMail>truc@yahoo.fr</EMail>
    <Contenu>Héhé =)</Contenu>
    <DateMessage>17/09/2002 15:22:03</DateMessage>
  </Message>
</Messages>

'fichier suggest.aspx
'-----------------------------

<%@ Page Language="vb" Debug="true" %>

<%@Import NameSpace="System.XML"%>
<script runat=server>
Class Message
	Public Nom as String
	Public EMail as String
	Public Contenu as String
	Public DateMessage as Date
End Class

Sub Page_Load(sender as Object, e as EventArgs)
if Not Page.IsPostBack Then
	guestbook.DataSource = GetDataSource
	guestbook.DataBind
End If
End Sub

Sub btn_Click(sender as Object, e as EventArgs)
Dim doc as New XMLDocument
doc.Load(Server.MapPath("suggest.XML"))
Dim mElement as XMLElement
mElement = doc.CreateElement("Message")

Dim mSubElement as XMLElement
mSubElement = doc.CreateElement("Nom")
mSubElement.InnerText = txtNom.Text
mElement.AppendChild(mSubElement)

mSubElement = doc.CreateElement("EMail")
mSubElement.InnerText = txtEMail.Text
mElement.AppendChild(mSubElement)

mSubElement = doc.CreateElement("Contenu")
mSubElement.InnerText = txtComm.Text
mElement.AppendChild(mSubElement)

mSubElement = doc.CreateElement("DateMessage")
mSubElement.InnerText = DateTime.Now.ToString
mElement.AppendChild(mSubElement)

doc.DocumentElement.AppendChild(mElement)
doc.Save(Server.MapPath("suggest.XML"))

guestbook.DataSource = GetDataSource
guestbook.DataBind

txtNom.Text = ""
txtEmail.Text = ""
txtComm.Text = ""

End Sub

Function GetDataSource() as ArrayList
Dim mArray as New ArrayList
Dim doc as New XMLDocument
doc.Load(Server.MapPath("suggest.XML"))

Dim mNodeChild as XMLNode
Dim mNodeList as XMLNodeList
mNodeList = doc.GetElementsByTagName("Message")
For each mNodeChild in mNodeList
	Dim mMessage as New Message
	mMessage.Nom = mNodeChild.ChildNodes(0).InnerText
	mMessage.EMail = mNodeChild.ChildNodes(1).InnerText
	mMessage.Contenu = mNodeChild.ChildNodes(2).InnerText
	mMessage.DateMessage = CDate(mNodeChild.ChildNodes(3).InnerText)
	mArray.Add(mMessage)
Next

GetDataSource = mArray
End Function

</script>

<html><body>
<form runat=server>

  <table width="500" border="0" cellspacing="5">
    <tr valign="top"> 
      <td>Nom</td>
      <td> 
        <asp:TextBox id="txtNom" runat=Server/>
      </td>
  </tr>
    <tr valign="top"> 
      <td>EMail</td>
      <td> 
        <asp:TextBox id="txtEMail" runat=Server/>
      </td>
  </tr>
    <tr valign="top"> 
      <td>Commentaire</td>
      <td> 
        <asp:TextBox id="txtComm" TextMode=Multiline Width=250 Rows=5 runat=Server/>
      </td>
  </tr>
<tr><td colspan=2 align=right>
<asp:Button id=btn OnClick=btn_Click Text=Enregistrer runat=Server/>
</td>
</tr>
</table>
<asp:DataList id=guestbook runat=Server Border="1">
<HeaderStyle
	font-bold=True
	forecolor="White"
	backcolor="Black"/>
<HeaderTemplate>
	Vos suggestions
</HeaderTemplate>
<ItemTemplate>
	Message du <%# Container.DataItem.DateMessage.ToString%><br/>
	De <a href=mailto:<%# Container.DataItem.EMail%>><%# Container.DataItem.Nom%></a>
	<p><%# Container.DataItem.Contenu%></p>
</ItemTemplate>
<AlternatingItemStyle BackColor="Silver"/>
</asp:DataList>
</form>
</body></html>
 

 Conclusion

Bonne prog' =)

Phildarvador


 Sources du même auteur

PROTEGER UNE PAGE PAR LOGIN/PASSWORD

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GUESTBOOK AVEC GRIDVIEW par DanMor498
Source avec Zip CHECKED DROPDOWNLIST par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) MONEY TEXTBOX WITH EMBEDED JAVASCRIPT par fredzool

Commentaires et avis

Commentaire de fabrice69 le 18/09/2002 23:26:32 administrateur CS

Pas mal le systeme de sauvegarde en XML de plus c'est vraiment très rapide. reste à voir quand le fichier est conséquent.

F___

Commentaire de phildarvador le 19/09/2002 19:38:14

C'est sûr qu'avec un fichier volumineux il faut plutot envisager une liaison avec une base =)

Commentaire de Jackboy le 20/02/2003 05:33:28

Invalid byte was found at byte index 101.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Invalid byte was found at byte index 101.

Source Error:


Line 55: Dim mArray As New ArrayList
Line 56: Dim doc As New XMLDocument
Line 57: doc.Load(Server.MapPath("suggest.XML"))
Line 58:
Line 59: Dim mNodeChild As XMLNode


Source File: d:inetpubwwwrootlivre d'orsuggest.aspx    Line: 57

Stack Trace:


[ArgumentException: Invalid byte was found at byte index 101.]
   System.Xml.XmlScanner.GetChars(Byte[] srcBuffer, Int32& srcOffset, Int32 srcLen, Char[] destBuffer, Int32 destOffset, Boolean zeroedOut) +171
   System.Xml.XmlScanner.Read() +129
   System.Xml.XmlScanner.ScanContent() +412
   System.Xml.XmlTextReader.ParseBeginTagExpandCharEntities() +266
   System.Xml.XmlTextReader.Read() +216
   System.Xml.XmlValidatingReader.ReadNoCollectTextToken() +38
   System.Xml.XmlValidatingReader.Read() +14
   System.Xml.XmlLoader.LoadChildren(XmlNode parent) +33
   System.Xml.XmlLoader.LoadElementNode() +144
   System.Xml.XmlLoader.LoadCurrentNode() +38
   System.Xml.XmlLoader.LoadCurrentNode() +192
   System.Xml.XmlLoader.LoadChildren(XmlNode parent) +47
   System.Xml.XmlLoader.LoadElementNode() +144
   System.Xml.XmlLoader.LoadCurrentNode() +38
   System.Xml.XmlLoader.LoadCurrentNode() +192
   System.Xml.XmlLoader.LoadChildren(XmlNode parent) +47
   System.Xml.XmlLoader.LoadElementNode() +144
   System.Xml.XmlLoader.LoadCurrentNode() +38
   System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) +49
   System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) +121
   System.Xml.XmlDocument.Load(XmlReader reader) +72
   System.Xml.XmlDocument.Load(String filename) +78
   ASP.suggest_aspx.GetDataSource() in d:inetpubwwwrootlivre d'orsuggest.aspx:57
   ASP.suggest_aspx.Page_Load(Object sender, EventArgs e) in d:inetpubwwwrootlivre d'orsuggest.aspx:14
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +29
   System.Web.UI.Page.ProcessRequestMain() +724


Commentaire de phildarvador le 17/09/2003 20:10:13

Pour la configuration de IIS, cherche sur le site ou sur google...

Commentaire de dotnet11 le 21/03/2006 16:54:44

maous

Commentaire de Josh08 le 10/02/2008 20:50:54 9/10

Hello.
Tout d'abord, merci pour ce code qui marche très bien.

Mais j'ai un petit soucis (surement un truc débile...) :
comment faire pour récupérer à l'affichage les retours à la ligne enregistrer dans le fichier XML ? En effet, les retours à la ligne "tapés" dans la textBox sont bien enregistrés dans le XML mais à l'affichage, ils sont ignorés.

Merci.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales