begin process at 2010 02 10 17:26:49
  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 :9 738

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) CUSTOM DATEPIKER DÉRIVANT DE COMPOSITECONTROL par fredzool
Source avec Zip UN MODULE POUR APPRENDRE SQL par Elmarzougui
Source avec Zip Source .NET (Dotnet) BOUTON QUI EMPECHE LE MULTI CLIC AVANT LA FIN DU TRAITEMENT.... par fredzool
Source avec Zip Source .NET (Dotnet) BOUTON AVEC CSS ET USERCONTROL WITH EVENT par fredzool
Source avec Zip Source .NET (Dotnet) CAPTCHA ASP.NET ET JAVASCRIPT par vaan3713

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...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,076 sec (3)

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