Concaténer deux champs dans le même 'Eval' d'une GridView


 5/27/2015

<%# String.Concat(Eval("NomCol1"),Eval("NomCol2")) %>

Lire >>

Parcourir une GridView contenant des TemplateField


 5/27/2015

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

Lire >>

Mise en place de log4net dans un projet web


 5/27/2015

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 :      

 <appendername="LogFileAppender"type="log4net.Appender.FileAppender">
<paramname="File"value="Logs\\Log4Net.log"/>
<layouttype="log4net.Layout.PatternLayout">
<paramname="ConversionPattern"value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>

o Log par mail :

<appendername="SmtpAppender"type="log4net.Appender.SmtpAppender">
<tovalue="to@domain.com"
...

Lire >>

L'obfuscation "Simple" en .Net avec "Dotfuscator"


 5/27/2015

"En informatique, un obfuscateur est un utilitaire qui transforme le bytecode d'un programme en un bytecode aux fonctions équivalentes mais plus difficile à décompiler.

Le but de cet outil est de protéger un programme d'attaques ou d'intrusions notamment dans le domaine de l'espionnage industriel." cf Wikipédia

Cette technique permet d'obtenir un code impénétrable.

Introduction

Pour ce tutorial, je vais utiliser une classe très simple, la classe HelloWorld.cs, contenant une propriété, deux constructeurs et une méthode :

//-----------------------------------------------------------------------
// <copyright file="HelloWorld.cs" company="PH">
//     Copyright (c) PH. All rights reserved.
// </copyright>
// <author>PH</author>
// <date>01/09/2010</date>
//-----------------------------------------------------------------------
namespace Dotfuscator
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
 
    /// <summary>
    /// HelloWorld Class
    /// </summary>
    public class HelloWorld
    {
        /// <summary>
        /// Initializes a new instance of the HelloWorld class
        /// </summary>
        public HelloWorld()
        {
        }
 
        /// <summary>
        /// Initializes a new
...

Lire >>

Url Rewriting


 5/27/2015

"L'URL-rewriting est une réécriture d'URL. La technique consistant à réécrire sous forme plus simple des URLs complexes. Cette technique est transparente pour l'internaute ainsi que pour les moteurs de recherches. Le but principal est d'obtenir un meilleur référencement."  cf kdj-webdesign.com

Le but de ce tutoriel est de transformer de façon transparente pour l'utilisateur ce genre d'url : 

Au lieu d'avoir ce type d'adresse : http://www.lesite.com/product.aspx?id=1&name?leNomDeMonProduit

on préférera la transformer en : http://www.lesite.com/leNomDeMonProduit.html

A. Première technique

1) Ajouter la DLL nécessaire dans le répertoire Bin de votre site web

ThunderMain.URLRewriter.dll (4,50 kb) ou sur le site du projet "code source" :http://www.codeproject.com/aspnet/URLRewriter.asp

Clique droit sur le site, puis ajouter une référence pointant sur cette DLL.

2) Ajouter ou modifier le fichier Global.asax

Y ajouter cette méthode :

void Application_BeginRequest(object sender, EventArgs e)
{
ThunderMain.URLRewriter.Rewriter.Process();
}

3) Modifier le fichier Web.config

a) Ajouter dans la section "configuration" :
<sectionGroup name="system.web">
<section name="urlrewrites"  
type="ThunderMain.URLRewriter.Rewriter,&#xA; ThunderMain.URLRewriter,
...

Lire >>

Personnaliser les pages d'erreur en ASP.NET

Tags: Erreurs

 5/27/2015

Au lieu d'avoir les pages d'erreurs par défaut, souvent désagréable à voir par le client, asp.net permet en quelques cliques de personnaliser ces pages.

1) Décommenter la section "customErrors" dans le web.config

et y modifier le nom des fichiers, on peut y placer aussi bien des pages html que des pages aspx.

<customErrors mode="On" defaultRedirect="GenericErrorPage.aspx">
<error statusCode="403" redirect="403.aspx" />
<error statusCode="404" redirect="404.aspx" />
</customErrors>

L'attribut "mode" peut prendre 3 valeurs :

On : La gestion des erreurs est activée en local et à distance.

Off : Gestion d'erreurs désactivée.

RemoteOnly : Gestion des erreurs activée seulement à distance, en local se seront les pages par défaut.

2) Créer les pages

Ensuite il faut créer ces pages, soit de façon très simple en mettant une image et le nom de l'erreur ou alors en affichant un message dynamique (voir 3)

3) Personnaliser ses pages d'erreurs

a) Créer une classe "BasePage" qui va hériter de "System.Web.UI.Page"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
 
/// <summary>
/// Description résumée de BasePage
/// </summary>
public class BasePage : System.Web.UI.Page
{
      public BasePage()
{
}
...

Lire >>

L'AutoCompletion en ASP.NET


 5/27/2015

Le complètement ou complètement automatique, ou encore par anglicisme complétion ou autocomplétion, est une fonctionnalité informatique permettant à l'utilisateur de limiter la quantité d'informations qu'il saisit avec son clavier, en se voyant proposer un complément qui pourrait convenir à la chaîne de caractères qu'il a commencé à taper. cf wikipédia

Dans cet exemple nous allons voir comment fonctionne l'autoCompletion à l'aide d'une liste de pays.

1) Création du WebService

Dans un premier temps, il faut créer le WebService qui renverra la liste des pays commençants par la saisie de l'utilisateur.

Ici le fichier du WebService se nomme "MyService.asmx"

a) Sans base de données

Pour comprendre de façon très simple le fonctionnement de ce controle, on ne va pas utiliser de base de données, mais un simple tableau qui renverra des pays "en dur".

Code :

[WebMethod]
public string[] GetCountries(string prefixText, int count)
{
ArrayList countryList = new ArrayList();
 
string[] countries = { "France", "Finland", "Allemagne", "Pologne", "Italie", "Etats-Unis", "Angleterre" };

foreach (string country in countries)
{
            if (country.ToLower().StartsWith(prefixText))
                countryList.Add(country);
}
 
return
...

Lire >>

Utiliser l'attribut MaxLength dans une TextBox Multiligne avec du JavaScript

Tags: TextBox

 5/27/2015

La TextBox multiligne :

<asp:TextBox runat="server"
       ID="txtMulti"
       Width="100%"
       Rows="7"
       TextMode="MultiLine"
       Style="resize: none;"
       OnKeyPress="CaracMax(this, 10)"
       MaxLength="10" />

La fonction JavaScript :

function CaracMax(texte, max) {
    if (texte.value.length >= max) {
        texte.value = texte.value.substr(0, max - 1);
    }
}

Lire >>