Aug 12

Partons su principe qu'il existe 2 siteMap (admin et web) placés dans le dossier SiteMap à la racine du site

1) Ajouter dans le fichier web.config (dans la section System.web):

<siteMap enabled="true">

      <providers>

        <add name="SiteMapWeb" type="System.Web.XmlSiteMapProvider" siteMapFile="~/SiteMap/Web.sitemap" />

        <add name="SiteMapAdmin" type="System.Web.XmlSiteMapProvider"  siteMapFile="~/SiteMap/Admin.sitemap" />

      </providers>

</siteMap>

2) Pour les utiliser :

<asp:SiteMapDataSource ID="dsSiteMapWeb" runat="server" ShowStartingNode="false" SiteMapProvider="SiteMapWeb"  />

ou :

<asp:SiteMapDataSource ID="dsSiteMapAdmin" runat="server" ShowStartingNode="false" SiteMapProvider="SiteMapAdmin"  />

Tags:
Aug 09

Mise en place de Log4Net :

 

1)  Ajouter la référence log4net.dll au projet (téléchargement sur http://logging.apache.org/)

2)  Ajouter au projet, le fichier Global.asax. Dans l’événement « Application_Start » ajouter ce code : log4net.Config.XmlConfigurator.Configure();

void Application_Start(object sender, EventArgs e)

    {

        // Code qui s'exécute au démarrage de l'application

        log4net.Config.XmlConfigurator.Configure();

    }

3)  Ouvrir le fichier web.config puis

-           ajouter dans la section  « Configuration/Configsections » ce code :

<section  name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

-          Après la balise de fermeture </configSections> ajouter la balise <log4net><log4net/>

-          Entre ces balises rajouter l’un ou ces deux codes en fonction de votre choix (envoi par mail, ou stockage dans un fichier)

o   Log dans un fichier texte :       

    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">

<param name="File" value="Logs\\Log4Net.log"/>

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>

</layout>

</appender>


o    Log par mail :

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">

<to value="to@domain.com" />

<from value="from@domain.com" />

<subject value="log www.domain.com" />

<smtpHost value="smtpServer.domain.com" />

<bufferSize value="512" />

<lossy value="true" />

<evaluator type="log4net.Core.LevelEvaluator">

<threshold value="WARN"/>

</evaluator>

<layout type="log4net.Layout.PatternLayout">

<conversionPattern value="%newline%date [%thread] %-5level %logger [%property] -%message%newline%newline%newline" />

</layout>

</appender>

 

-          Après l’ouverture de la balise <log4net> ajouter l’un ou les deux codes suivant (texte ou mail)

o   Texte

<logger name="File">

<level value="All" />

<appender-ref ref="LogFileAppender" />

</logger>


o   Mail

<logger name="EmailLog">

<level value="All" />

<appender-ref ref="SmtpAppender" />

</logger

4)  Ajouter les logs aux endroits nécessaires :

-          Dans un fichier texte :

          log4net.ILog logger = log4net.LogManager.GetLogger("File");

 

-          Envoi par mail :

          log4net.ILog logger = log4net.LogManager.GetLogger("EmailLog");

 

-          Création du log :

          logger.Info("Erreur dans la methode x");

 

Tags: |
Aug 06

Cet exemple permet de créer une gridView, puis de parcourir ligne à ligne ses valeurs pour enfin les afficher.

Page aspx :

<table width="100%">

  <tr>

    <td align="center">

<asp:GridView runat="server"

  ID="gvList"

  AutoGenerateColumns="false"

  Width="400px">

   <Columns>

    <asp:TemplateField HeaderText="Nom" ItemStyle-Width="50%">

     <ItemTemplate>

             <asp:TextBox runat="server"

  ID="txtNom"

  Width="98%" />

           </ItemTemplate>

          </asp:TemplateField>

          <asp:TemplateField HeaderText="Prénom" ItemStyle-Width="50%">

            <ItemTemplate>

              <asp:TextBox runat="server" ID="txtPrenom" Width="98%"></asp:TextBox>

            </ItemTemplate>

          </asp:TemplateField>

         </Columns>

        </asp:GridView>

      </td>

    </tr>

    <tr>

      <td align="center">

         <asp:Button runat="server"

   ID="btnValid"

   Text="Valider"

   OnClick="btnValid_Click" />

       </td>

    </tr>

    <tr>

      <td align="center">

          <asp:TextBox TextMode="MultiLine"

     ID="txtResult"

     runat="server"

     Height="200px"

     Width="60%" />

      </td>

    </tr>

</table>

 

CodeBehind :

protected void Page_Load(object sender, EventArgs e)

{

   if (!IsPostBack)

   {

// Création d'une dataTable de 10 lignes et de deux colonnes

DataTable dt = new DataTable("dt");

dt.Columns.Add("Nom");

dt.Columns.Add("Prenom");

 

for (int i = 0; i < 10; i++)

{

DataRow newRow = dt.NewRow();

dt.Rows.Add(newRow);

}

 

gvList.DataSource = dt;

gvList.DataBind();

    }

}

 

/// <summary>

/// Classe interne Personne

/// </summary>

internal class Personne

{

public string Nom { get; set; }

public string Prenom { get; set; }

}

 

/// <summary>

/// Action sur le bouton valider, ajout des personnes saisies dans une IList

/// </summary>

protected void btnValid_Click(object sender, EventArgs e)

{

   IList<Personne> lsPersonne = new List<Personne>();

 

   foreach (GridViewRow row in gvList.Rows)

   {

Personne personne = new Personne();

 

TextBox txtNom = row.FindControl("txtNom") as TextBox;

personne.Nom = txtNom.Text;

     

TextBox txtPrenom = row.FindControl("txtPrenom") as TextBox;

personne.Prenom = txtPrenom.Text;

 

lsPersonne.Add(personne);

   }

 

   AffichePersonne(lsPersonne);

}

 

/// <summary>

/// Affichage des personnes dans une TextBox multiligne

/// </summary>

/// <param name="lsPersonne">Une liste de personnes</param>

private void AffichePersonne(IList<Personne> lsPersonne)

{

   txtResult.Text = string.Empty;

   foreach (Personne personne in lsPersonne)

   {

txtResult.Text += personne.Nom + " " + personne.Prenom +"\r\n";

   }

}