NVelocity & Hashtable

Nawalll Messages postés 10 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 2 avril 2008 - 3 juil. 2007 à 11:11
Nawalll Messages postés 10 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 2 avril 2008 - 4 juil. 2007 à 13:02
Bonsoir tout le monde

j'ai une classe c# qui recupère des informations à partir d'un formulaire, les stocke dans un Hashtable et puis utilise velocity pour afficher le contenu de ce Hashtable dans un tableau html:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
 using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Commons.Collections;
using NVelocity;
using NVelocity.App;
using NVelocity.Context;
using System.IO;

namespace exemple_Hashtable
{
    public class WebForm1 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.TextBox nomtxt;
        protected System.Web.UI.WebControls.TextBox prenomtxt;
        protected System.Web.UI.WebControls.Label Label1;
        protected System.Web.UI.WebControls.Label Label2;
        protected System.Web.UI.WebControls.Button ajouter;
        protected System.Web.UI.WebControls.Button Liste;
        protected System.Web.UI.WebControls.Label element;
            static protected Hashtable listepersonnes=new Hashtable();

        Personne person;

        private void Page_Load(object sender, System.EventArgs e)
        {
            
        }
        private void ajouter_Click(object sender, System.EventArgs e)
        {
        
            string nom=nomtxt.Text;
            string prenom=prenomtxt.Text;
            person=new Personne(nom,prenom);
            listepersonnes.Add(person.getNom(),person);
            nomtxt.Text="";
            prenomtxt.Text="";
            string message="ajouté  "+listepersonnes.Count.ToString();
            Page.RegisterStartupScript("msgErreur","<script>alert('"+message+"');</script>");

        }

        private void Liste_Click(object sender, System.EventArgs e)
        {
            try
            {
        
                VelocityEngine velocity = new VelocityEngine();
                velocity.SetProperty(NVelocity.Runtime.RuntimeConstants_Fields.FILE_RESOURCE_LOADER_PATH,"C:/Inetpub/wwwroot/exemple_Hashtable/templates");
                velocity.Init();
                Template template = velocity.GetTemplate("template.vm");
                VelocityContext context = new VelocityContext();
                context.Put("liste",listepersonnes);
                StringWriter writer = new StringWriter();
                template.Merge(context, writer);
                Console.Out.Write(writer);
                element.Text=writer.GetStringBuilder().ToString();
                
            }
            catch(Exception ex){ }
        }
    }
}


et voici mon template:


<html>

 Liste 

  ----

    Nom |
    Prénom |
    
 

#foreach( $personne in $liste )
    ----

    $personne.getNom(),
        $personne.getPrenom(),
    
#end

</html>


Alors le pb c'est que toutes les cases de mon tableau contiennent : $personne.getNom()

J'ai l'impression que mon code ici n'est pas interpreté

Merci de m'aider

1 réponse

Nawalll Messages postés 10 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 2 avril 2008
4 juil. 2007 à 13:02
J'ai trouvé la solution de mon problème!!!
Ouf enfin tout va bien! 
0